[Excel] Dropdownbox met alle Sheetnamen daarin

Pagina: 1
Acties:

  • awenger
  • Registratie: Februari 2006
  • Laatst online: 08:04
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?

  • Daos
  • Registratie: Oktober 2004
  • Niet online
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:
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.

  • awenger
  • Registratie: Februari 2006
  • Laatst online: 08:04
fantastisch! dit was exact wat ik nodig had! Dank je wel.

  • awenger
  • Registratie: Februari 2006
  • Laatst online: 08:04
Is het trouwens mogelijk om items in de combobox te sorteren op alfabetische volgorde?

  • Daos
  • Registratie: Oktober 2004
  • Niet online
awenger2k schreef op vrijdag 26 mei 2006 @ 18:39:
Is het trouwens mogelijk om items in de combobox te sorteren op alfabetische volgorde?
Je kan het er gewoon op volgorde in doen. Bijvoorbeeld zo:
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