Maken van een TreeView

Status
Niet open voor verdere reacties.

JJZijlstra

Gebruiker
Lid geworden
26 nov 2013
Berichten
283
Beste lezer,

Aan de hand van de gegevens in beide sheets wil ik graag een zgn. TreeView maken. Gedeeltelijk is me dit gelukt, maar ik zou heel graag zien dat via het aangeklikte werelddeel en land ook de bijbehorende informatie per land staat aangegeven op de plaatsen van de labels 6 t/m 10.
Hoewel ik alles probeer en stuk voor stuk de juistheid van de code controleer lukt me dit maar niet.
Wat doe ik fout?

Het is bestand is hier toegevoegd.

Vriendelijke groet,
Johan
 

Bijlagen

  • TreeViewProject.xlsm
    40,4 KB · Weergaven: 35
Het is verstandig dezelfde schrijfwijze aan te houden voor landnamen in blad1 en Blad2.

En het inlezen van de landgegevens in een onzichtbare listbox maakt de code ook een stuk eenvoudiger.
 

Bijlagen

  • __TreeViewProject_snb.xlsb
    30,4 KB · Weergaven: 33
Laatst bewerkt:
@ snb,

Hartelijk dank voor uw bijdrage. De code is een stuk korter geworden en ziet er geheel anders uit.
Toch heb ik nog enkele vragen. Ik hoop dat u ze wilt beantwoorden.

Wat bedoelt u met "het inlezen van de landgegevens in een onzichtbare listbox maakt de code eenvoudiger"?

Code:
If j = 1 Then .Add , , sn(1, jj), sn(1, jj)
          If j > 1 Then .Add sn(1, jj), tvwChild, sn(j, jj), sn(j, jj)

Ik begrijp dat in bovenstaande code de link van "parent" naar "child" wordt gelegd? Zie ik dat juist?
Hoe wordt in uw code de relatie tussen sheet1 en sheet 2 gelegd zodat in de userform de juiste gegevens bij het juiste land behoren?
Het lijkt of de gegevens van beide sheets worden samengevoegd in het userform.


Code:
Me("Label" & jj + 4).Caption = sn(j, jj)

Wat duidt het getal 4 aan in de code hierboven?



Vriendelijke groet,
Johan
 
Laatst bewerkt:
nu met verborgen listbox:

gebruik F8 in de VBEditor om de code te doorgronden.

Nog een kleine vereenvoudiging van de code ten opzichte van de code in het bestand:

Code:
Private Sub userform_Initialize()
  sn = Sheet2.Cells(1).CurrentRegion
  ListBox1.List = sn
  
  With TreeView1.Nodes
      For j = 2 To UBound(sn)
        If sn(j, 1) <> "" Then c00 = .Add(, , sn(j, 1), sn(j, 1)).Text
        .Add c00, 4, sn(j, 2), sn(j, 2)
      Next
  End With
End Sub
 

Bijlagen

  • __TreeViewProject_snb.xlsb
    25 KB · Weergaven: 51
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan