snb
Verenigingslid
- Lid geworden
- 12 jun 2008
- Berichten
- 20.220
Soms wil je gegevens in een hiërarchische struktuur weergeven.
Dat levert dan een boomstruktuur op.
Het betekent dat een element 'onderdeel' uitmaakt van een ander element, bijv. in een organisatiestruktuur.
Excel heeft daarvoor niet direkt een hulpmiddel in huis.
Toch kun je gebruik maken van een 'Treeview' zoals bijv. de verkenner van Windows is opgebouwd.
Die zit in een aparte VBA-bibliotheek: Microsoft Windows Common Controls 6.0 (SPS).
In het bestand wordt die zichtbaar gemaakt in het Userform, achter de knop 'userform'.
Maar je kunt de Treeview in VBA ook helemaal virtueel in het geheugen laden met de ClassIdentification (CLSID).
Dan kun je eenvoudig elementen en hun hiërarchische relaties in de treeview in het werkgeheugen zetten.
Daarna kun je die gegevens als hiërarchisch geordende gegevens uitlezen en in een array zetten.
Die Array schrijf je vervolgens weg in het werkblad.
De macro achter de knop 'start' doet dat.
De hiërarchische struktuur van de gegevens 'vraagt' om een recursieve uitleesprocedure.
Die tref je dan ook in het bestand aan.
Dat levert dan een boomstruktuur op.
Het betekent dat een element 'onderdeel' uitmaakt van een ander element, bijv. in een organisatiestruktuur.
Excel heeft daarvoor niet direkt een hulpmiddel in huis.
Toch kun je gebruik maken van een 'Treeview' zoals bijv. de verkenner van Windows is opgebouwd.
Die zit in een aparte VBA-bibliotheek: Microsoft Windows Common Controls 6.0 (SPS).
In het bestand wordt die zichtbaar gemaakt in het Userform, achter de knop 'userform'.
Maar je kunt de Treeview in VBA ook helemaal virtueel in het geheugen laden met de ClassIdentification (CLSID).
Dan kun je eenvoudig elementen en hun hiërarchische relaties in de treeview in het werkgeheugen zetten.
Daarna kun je die gegevens als hiërarchisch geordende gegevens uitlezen en in een array zetten.
Die Array schrijf je vervolgens weg in het werkblad.
De macro achter de knop 'start' doet dat.
De hiërarchische struktuur van de gegevens 'vraagt' om een recursieve uitleesprocedure.
Die tref je dan ook in het bestand aan.