vba dyamisch multipage navigatie

Status
Niet open voor verdere reacties.

timpies

Nieuwe gebruiker
Lid geworden
10 feb 2012
Berichten
4
Hallo,

Ik moet voor het gebruiksgemak het excel personeelsbestand voorzien van onze personeelsmanager voorzien van een navigatiesysteem.
Het workbook bevat meer dan 50 tabs, 1 per persoon. Enkele keer per jaar komt er iemand bij of gaat er iemand weg. (daarom de nood voor een dynamische vba oplossing)
Elk persoon behoort tot een beroepsgroep (painter, plumber, staff, ...)
De namen en hun groep staan op hun individuele worksheet respectievelijk in Cells A1 en C1.

In plaats van een persoon zijn worksheet te zoeken onderaan zou de personeelsmanager liever
een soort Navigatie menu hebben per Beroepsgroep.

Mijn oplossing (zie attachment) bestaat uit een dynamisch Form met multiPage, een tab per beroepsgroep
met buttons voor iedereen in deze group. Clicking een button zou hen onmiddellijk naar hun individuele
sheet brengen.
Simpel ... maar Ik ben geblokkeerd bij het initialiseren van de form-multipage control. De buttons plaatsen op
de eerste tab is geen probleem maar ik krijg ze niet in de gewenste tab + de link naar hun pagina lukt niet.

Als je kijkt naar mijn voorbeeld .. de eerste button is een voorbeeld van wat het zou moeten zijn: een button
voor elke persoon die linkt naar zijn individuele pagina. De button linkt ook niet naar de worksheet.
Nu zou het nog in een Multipage control... moeten geraken.

ALle hulp welkom.
 

Bijlagen

Dag timpies !

Het lijkt mij geen moeilijke opgave om jouw gevraagde oplossing te programmeren, maar vooraleer ik het verder analyseer, had ik toch even een vraag voor jou. Waarom wil je een oplossing met buttons? Wat vind je van een worksheet met een globaal overzicht, bijvoorbeeld een kolom per groep en dan in iedere kolom de namen van de groepsleden? Met een klik op een cel spring je dan naar de gekozen sheet en met een macro zou je dan die overzichtssheet kunnen actualiseren.

Laat je keuze eens weten en dan gaan we daar mee verder.

Grtz,
MDN111.
 
Hoi 21MDN111,

Buiten het feit dat het een mooie uitdaging is .. om dezelfde reden als waarom hij een floating form wil metnavigatiemogelijkhedene zodat hij van eendert welke worksheet onmiddellijk naar een andere kan zonder al te veel te moeten zoeken.
Jouw oplossing had ik ook al voorgesteld, maar dat vond hij niet echt een verbetering. Wat mij betreft kan het ook een form met labels die verwijzen naar de worksheets. Verder dan dat ben ik eigenlijk wel benieuwd naar de oplossing ;-)

Ik heb nog wat zitten verder experimenteren en ik kom niet verder dan de fout ..
 
Laatst bewerkt door een moderator:
Hello MDN111

Thankx heaps for this!!! I get an error however:

Error 13: type mismatch.

on following line early in the for loop
Set oPage = oMP.Pages.Add(oC(1, 3).Value, oC(1, 3).Value)

It looks great however .. I am going to study it some more. If you have immediately
an idea why it errors out please advise.

In any way thankx aLOT
 
Nogmaals dag timpies !

Hierbij een mogelijke betere oplossing.

Het programmeren van de multipage en de buttons was niet echt een probleem. De problemen begonnen toen er event handlers aan de buttons moesten komen. In eerste instantie was ik verder gegaan op jouw basis met een class module en het lukte wel om een event-procedure aan te roepen, maar ik slaagde er niet in om in die event-procedure de knop te bepalen die ze had getriggered.

Dan heb ik het roer volledig omgegooid en voor de event handlers gebruik gemaakt van de codemodule van het VB-project. Het resultaat vind je bij m'n vorig bericht, maar toch vond ik dat niet elegant (een bijkomende codemodule, te verwijderen bij Workbook_Close,...). Waarom dat bij jou een foutmelding geeft begrijp ik niet. Ik heb het bij mij (Excel 2003) uitvoerig getest en alles werkt, behalve dat ik de userform niet modeless krijg bij de eerste aanroep.

Na daarop gezocht te hebben zonder resultaat, ben ik terug overgeschakeld op het systeem men een class module voor de events. Voor het probleem om de "aanroepende" button te kennen heb ik uiteindelijk een oplossing gevonden. Deze oplossing werkt bij mij zonder problemen. In bijlage het nieuwe bestand.

Grtz,
MDN111.
 

Bijlagen

Beste 11MDN111,

Wow ... jij bent echt te gek. Het genereerde dezelfde fout. Maar ik heb gevonden waarom.
Ik gebruik MS excel 2010 en vanaf Excel 2007 is er een nieuw object Page geintroduceert.
Als ik daarom overal waar je het object Page hebt gedefinieerd vervang door msforms.Page
dan werkt het even goed bij mij!!!

Dank je zeer .. ik ga hier mee verder. Bovendien heb ik wel het een en het ander
geleerd van hoe je met de verschillende objecten moet omgaan in vb.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan