tschieses
Goto Top

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

Content-ID: 54406

Url: https://administrator.de/contentid/54406

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

bastla
bastla 19.03.2007 um 09:49:07 Uhr
Goto Top
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":
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
Im Code zum entsprechenden Tabellenblatt ("Tabelle1") kannst Du dann die Reaktion auf eine Änderung des ComboBox-Wertes programmieren, zB
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
Tschieses
Tschieses 13.04.2007 um 07:36:42 Uhr
Goto Top
Danke für die hilfe ich habs jetzt hinbekommen.


Dieser thread kann geschlossen werden