Ik ben bezig met een excel bestand waar meerdere sheets in voorkomen. Nu wil ik een begin sheet maken waar een dropdownbox in moet komen welke het mogelijk maakt om naar de andere sheets te springen. Echter is de lijst met sheets variabel en de dropdownbox moet ook meeveranderen. Ik heb geen idee hoe ik dit in elkaar moet zetten, kan iemand mij hier mee helpen?
Een dropdownbox heet gewoon een ComboBox.
1) Zet een ComboBox met bv de naam ComboBox1 op je eerste sheet.
2) Vul de ComboBox als je de eerste sheet activeert. Bijvoorbeeld zo:
3) Activeer een andere sheet als je iets verandert in de ComboBox. Bijvoorbeeld zo:
1) Zet een ComboBox met bv de naam ComboBox1 op je eerste sheet.
2) Vul de ComboBox als je de eerste sheet activeert. Bijvoorbeeld zo:
Visual Basic:
1
2
3
4
5
6
7
8
| Private Sub Worksheet_Activate() ComboBox1.Clear Dim sh As Worksheet For Each sh In ThisWorkbook.Sheets ComboBox1.AddItem sh.Name Next End Sub |
3) Activeer een andere sheet als je iets verandert in de ComboBox. Bijvoorbeeld zo:
Visual Basic:
1
2
3
4
5
| Private Sub ComboBox1_Change() If ComboBox1.Value <> "" Then ThisWorkbook.Sheets(ComboBox1.Value).Activate End If End Sub |
Verwijderd
als je rechts klikt in het gebied met de werkbladnavigatiepijltjes links onderaan verschijnt er ook een lijst waaruit je kan kiezen. als er meer dan 15 bladen zijn, kan je vandaaruit een aparte lijst oproepen.
fantastisch! dit was exact wat ik nodig had! Dank je wel.
Je kan het er gewoon op volgorde in doen. Bijvoorbeeld zo:awenger2k schreef op vrijdag 26 mei 2006 @ 18:39:
Is het trouwens mogelijk om items in de combobox te sorteren op alfabetische volgorde?
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
| Private Sub Worksheet_Activate() ComboBox1.Clear Dim sh As Worksheet For Each sh In ThisWorkbook.Sheets For i = 0 To ComboBox1.ListCount - 1 If ComboBox1.List(i) > sh.Name Then Exit For Next ComboBox1.AddItem sh.Name, i Next End Sub |
Tipje:
Als je veel in VBA gaat doen, is het verstandig om functies/subroutines te maken en deze in modules (met een duidelijke naam) te zetten.
Pagina: 1