VBA in Excel - Dropdown - Menue
Also ich will ein dropdown-menue machen, nur mein problem ist folgendes: wenn ich in der drop-down-liste einen wert anklicke wird dieser nicht übernommen bzw. angezeit.
hier ist mein quellcode. die kommentare sind herumspielereien die ich mal ausprobiert hab...
Private Sub ComboBox1_DropButtonClick()
Dim test
test = "blubb"
ComboBox1.Clear
'ComboBox1.AddItem test
'ComboBox1.AddItem "Left Top" 'ListIndex = 0
'ComboBox1.AddItem "Left Center" 'ListIndex = 1
'ComboBox1.AddItem "Left Bottom" 'ListIndex = 2
'ComboBox1.AddItem "Right Top" 'ListIndex = 3
'Use drop-down list
'ComboBox1.Style = fmStyleDropDownList
Dim i As Integer
'For i = 1 To 4
' ComboBox1(i).Visible = False 'Rahmen unsichtbar machen
'Next i
'ComboBox1(0).Visible = True 'Rahmen sichtbar machen
ComboBox1.AddItem "Zählen" 'Liste initialisieren
ComboBox1.AddItem "Addition mit Symbolen"
ComboBox1.AddItem "Addition"
ComboBox1.AddItem "Subtraktion"
ComboBox1.AddItem "Multiplikation"
ComboBox1.AddItem "Division"
ComboBox1.ListIndex = 0 'ersten Eintrag auswählen
End Sub
anbei noch ein paar bilder des Dropdown-menues...
1) Dorpdown-menue direckt nach starten
2) Auswahl eines Punktes
3) Nach dem Klicken auf den auswahlpunkt
die sache mit ersten eintrag auswählen: ist klar dass dann immer der 1. eintrag angezeit wird egal wo ich draufklicke. nur wie macht man das ganze dynamisch, dass das angezeit wird was auch angeklickt wird---
danke schonmal in voraus
Tschieses
hier ist mein quellcode. die kommentare sind herumspielereien die ich mal ausprobiert hab...
Private Sub ComboBox1_DropButtonClick()
Dim test
test = "blubb"
ComboBox1.Clear
'ComboBox1.AddItem test
'ComboBox1.AddItem "Left Top" 'ListIndex = 0
'ComboBox1.AddItem "Left Center" 'ListIndex = 1
'ComboBox1.AddItem "Left Bottom" 'ListIndex = 2
'ComboBox1.AddItem "Right Top" 'ListIndex = 3
'Use drop-down list
'ComboBox1.Style = fmStyleDropDownList
Dim i As Integer
'For i = 1 To 4
' ComboBox1(i).Visible = False 'Rahmen unsichtbar machen
'Next i
'ComboBox1(0).Visible = True 'Rahmen sichtbar machen
ComboBox1.AddItem "Zählen" 'Liste initialisieren
ComboBox1.AddItem "Addition mit Symbolen"
ComboBox1.AddItem "Addition"
ComboBox1.AddItem "Subtraktion"
ComboBox1.AddItem "Multiplikation"
ComboBox1.AddItem "Division"
ComboBox1.ListIndex = 0 'ersten Eintrag auswählen
End Sub
anbei noch ein paar bilder des Dropdown-menues...
1) Dorpdown-menue direckt nach starten
2) Auswahl eines Punktes
3) Nach dem Klicken auf den auswahlpunkt
die sache mit ersten eintrag auswählen: ist klar dass dann immer der 1. eintrag angezeit wird egal wo ich draufklicke. nur wie macht man das ganze dynamisch, dass das angezeit wird was auch angeklickt wird---
danke schonmal in voraus
Tschieses
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 54406
Url: https://administrator.de/contentid/54406
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Tschieses!
Wie Du richtig kommentiert hast, musst Du die Liste initialisieren - der vermutlich bessere Ort dafür wäre aber das Ereignis "Workbook_Open" in "Diese Arbeitsmappe":
Im Code zum entsprechenden Tabellenblatt ("Tabelle1") kannst Du dann die Reaktion auf eine Änderung des ComboBox-Wertes programmieren, zB
Und falls es nicht unbedingt VBA sein muss, könntest Du Dir einmal "Daten / Gültigkeit... / Einstellungen / Zulassen: / Liste" ansehen und als Quelle Zählen;Addition mit Symbolen;Addition;Subtraktion;Multiplikation;Division angeben ...
Eine weitere Alternative findest Du in der Symbolleiste "Formular".
Grüße
bastla
Wie Du richtig kommentiert hast, musst Du die Liste initialisieren - der vermutlich bessere Ort dafür wäre aber das Ereignis "Workbook_Open" in "Diese Arbeitsmappe":
Private Sub Workbook_Open()
Sheets("Tabelle1").ComboBox1.AddItem "Zählen" 'Liste initialisieren
Sheets("Tabelle1").ComboBox1.AddItem "Addition mit Symbolen"
Sheets("Tabelle1").ComboBox1.AddItem "Addition"
Sheets("Tabelle1").ComboBox1.AddItem "Subtraktion"
Sheets("Tabelle1").ComboBox1.AddItem "Multiplikation"
Sheets("Tabelle1").ComboBox1.AddItem "Division"
Sheets("Tabelle1").ComboBox1.ListIndex = 0 'ersten Eintrag auswählen
End Sub
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex >= 0 Then
Range("A5").Value = ComboBox1.List(ComboBox1.ListIndex)
End If
End Sub
Und falls es nicht unbedingt VBA sein muss, könntest Du Dir einmal "Daten / Gültigkeit... / Einstellungen / Zulassen: / Liste" ansehen und als Quelle Zählen;Addition mit Symbolen;Addition;Subtraktion;Multiplikation;Division angeben ...
Eine weitere Alternative findest Du in der Symbolleiste "Formular".
Grüße
bastla