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-Key: 54406

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

Printed on: April 19, 2024 at 08:04 o'clock

Member: bastla
bastla Mar 19, 2007 at 08:49:07 (UTC)
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
Member: Tschieses
Tschieses Apr 13, 2007 at 05:36:42 (UTC)
Goto Top
Danke für die hilfe ich habs jetzt hinbekommen.


Dieser thread kann geschlossen werden