Supportnet / Forum / Tabellenkalkulation
! Bitte Hilfe: ComboBox (VBA) geht das?
Frage
Hallo,
ich würde gerne in einem makro ein dropdown-menü programmieren, welches vier werte (text) enthält. wenn das makro läuft, soll an einer bestimmten stelle der nutzer aufgefordert werden, einen der vier werte auszuwählen, dieser entsprechende wert (text) wird dann wieder zur weiteren bearbeitung genutzt.
ich bräuchte nur die informationen, wie man eine combobox mit vier werten generiert (nicht auf dem Tabellenblatt, sondernso ähnlich wie Application.InputBox). Geht das überhaupt?
hat jemand bitte eine idee??
Antwort 1 von coros
Hallo MrB,
so ganz komme ich noch nicht dahinter, was Du möchtest. Aber mal als Ansatz, eine ComboBox in einem Tabellenblatt kannst Du z.B. am einfachsten mit 4 Werten füllen mit dem Code
Der Code gehört in das VBA Projekt des Tabellenblattes, in dem sich die Combobox befindet. Wenn sich die ComboBox in einer UserForm befindet, könntest Du das mit z.B. dem Code
realisieren. Hier wird beim Öffnen der UserForm die ComboBox mit 4 Werten gefüllt. Der Code gehört in das VBA Projekt der UserForm, in dem sich die Box befindet.
Ich hoffe, Du kannst etwas davon gebrauchen. Bei Fragen melde Dich bitte wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
so ganz komme ich noch nicht dahinter, was Du möchtest. Aber mal als Ansatz, eine ComboBox in einem Tabellenblatt kannst Du z.B. am einfachsten mit 4 Werten füllen mit dem Code
Private Sub ComboBox1_DropButtonClick()
ComboBox1.AddItem "Test1"
ComboBox1.AddItem "Test2"
ComboBox1.AddItem "Test3"
ComboBox1.AddItem "Test4"
End SubDer Code gehört in das VBA Projekt des Tabellenblattes, in dem sich die Combobox befindet. Wenn sich die ComboBox in einer UserForm befindet, könntest Du das mit z.B. dem Code
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Test1"
ComboBox1.AddItem "Test2"
ComboBox1.AddItem "Test3"
ComboBox1.AddItem "Test4"
End Subrealisieren. Hier wird beim Öffnen der UserForm die ComboBox mit 4 Werten gefüllt. Der Code gehört in das VBA Projekt der UserForm, in dem sich die Box befindet.
Ich hoffe, Du kannst etwas davon gebrauchen. Bei Fragen melde Dich bitte wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Hajo_Zi
Hallo Namensloser,
Sub Assi()
Set bln = Assistant.NewBalloon
With bln
.Heading = "Auswahlmöglichkeit"
.Text = "Klcke eine Checkbox"
.CheckBoxes(1).Text = "Auswahl1"
.CheckBoxes(2).Text = "Auswahl2"
.CheckBoxes(3).Text = "Auswahl3"
.BalloonType = msoBalloonTypeNumbers
.Mode = msoModeModal
.Button = msoButtonSetOK
.Show
End With
If bln.CheckBoxes(1).Checked = True Then
MsgBox "1"
ElseIf bln.CheckBoxes(2).Checked = True Then
MsgBox "2"
ElseIf bln.CheckBoxes(3).Checked = True Then
MsgBox "3"
End If
Set bln = Nothing
End Sub
Gruß Hajo
Sub Assi()
Set bln = Assistant.NewBalloon
With bln
.Heading = "Auswahlmöglichkeit"
.Text = "Klcke eine Checkbox"
.CheckBoxes(1).Text = "Auswahl1"
.CheckBoxes(2).Text = "Auswahl2"
.CheckBoxes(3).Text = "Auswahl3"
.BalloonType = msoBalloonTypeNumbers
.Mode = msoModeModal
.Button = msoButtonSetOK
.Show
End With
If bln.CheckBoxes(1).Checked = True Then
MsgBox "1"
ElseIf bln.CheckBoxes(2).Checked = True Then
MsgBox "2"
ElseIf bln.CheckBoxes(3).Checked = True Then
MsgBox "3"
End If
Set bln = Nothing
End Sub
Gruß Hajo
Antwort 3 von MrB
Hallo Oliver und Hajo!
vielen Dank!
das mit diesen Listeinträgen habe ich gesucht^^
ich bastel erstmal weiter und melde mich dann nochmal hier ;)
vielen Dank!
das mit diesen Listeinträgen habe ich gesucht^^
ich bastel erstmal weiter und melde mich dann nochmal hier ;)
Antwort 4 von MrB
Ich nochmal,
also die UserForm1 steht und funktioniert, dafür schon mal vielen Dank!
mein "altes" makro läuft und an einer bestimmten stelle wird die UserForm1 (das Listenfeld) aufgerufen:
UserForm1.Show
jetzt möchte ich nur noch, dass der gewählte Wert aus der UserForm1 "mitgenommen" wird, wenn man auf [ok] klickt und dieser Wert in meinem "alten" makro z.B. als Pfadeingabe genutzt wird. Der Wert den man auswählt heißt BL. wenn ich diesen aber im Makro irgendwo anspreche, dann ist er leer^^:
Private Sub cmdOK_Click()
Ergebnis = BL.Value
Label2.Caption = BL.Value
UserForm1.Hide
End Sub
Was mache ich falsch? und wie schließe ich die UserForm1 richtig? ich habe es erstmal mit Hide gemacht...
also die UserForm1 steht und funktioniert, dafür schon mal vielen Dank!
mein "altes" makro läuft und an einer bestimmten stelle wird die UserForm1 (das Listenfeld) aufgerufen:
UserForm1.Show
jetzt möchte ich nur noch, dass der gewählte Wert aus der UserForm1 "mitgenommen" wird, wenn man auf [ok] klickt und dieser Wert in meinem "alten" makro z.B. als Pfadeingabe genutzt wird. Der Wert den man auswählt heißt BL. wenn ich diesen aber im Makro irgendwo anspreche, dann ist er leer^^:
Private Sub cmdOK_Click()
Ergebnis = BL.Value
Label2.Caption = BL.Value
UserForm1.Hide
End Sub
Was mache ich falsch? und wie schließe ich die UserForm1 richtig? ich habe es erstmal mit Hide gemacht...
Antwort 5 von Hajo_Zi
Hallo
Definiere im Modul die Varibale Public Ergebnis as String
Dann hast Du den Wert auch in dem Modul. Schließen mit Hide ist ok, falls Du Sie nicht in der gleichen Sitzung nochmal aufrufst.
Warum Du das Label änderst bevor die Userform geschlossen wird ist mir nicht klar.
Gruß Hajo
Definiere im Modul die Varibale Public Ergebnis as String
Dann hast Du den Wert auch in dem Modul. Schließen mit Hide ist ok, falls Du Sie nicht in der gleichen Sitzung nochmal aufrufst.
Warum Du das Label änderst bevor die Userform geschlossen wird ist mir nicht klar.
Gruß Hajo
Antwort 6 von MrB
@Hajo:
Labeländerung:
damit der gewählte Wert erstmal auf dem Formular steht, wenn man auf [ok] klickt... da hatte ich das "Hide" noch nicht...
wie funktioniert die variablen-definition genau?
Public Ergebnis As String!?
sorry... ich weiß das nicht genau
Labeländerung:
damit der gewählte Wert erstmal auf dem Formular steht, wenn man auf [ok] klickt... da hatte ich das "Hide" noch nicht...
wie funktioniert die variablen-definition genau?
Public Ergebnis As String!?
sorry... ich weiß das nicht genau
Antwort 7 von Hajo_Zi
Hallo,
ja genauso nur im Modul, nicht in der UserForm.
Gruß Hajo
ja genauso nur im Modul, nicht in der UserForm.
Gruß Hajo
Antwort 8 von MrB
... habe ich gemacht... funktioniert nicht :(
die variable "Ergebnis" ist leer...
z. B. steht im Modul ein Pfad:
"T:\a\b\" & Ergebnis & "\"
Resultat:
T:\a\b\\
muss die variable vor dem sub definiert werden?
diese klizekleinigkeit stört noch :( ich hoffe wir bekommen das hin... büdde!
die variable "Ergebnis" ist leer...
z. B. steht im Modul ein Pfad:
"T:\a\b\" & Ergebnis & "\"
Resultat:
T:\a\b\\
muss die variable vor dem sub definiert werden?
diese klizekleinigkeit stört noch :( ich hoffe wir bekommen das hin... büdde!
Antwort 9 von MrB
@ HAJO!
sorry... geht natürlich!
danke, danke!
sorry... geht natürlich!
danke, danke!
Antwort 10 von MrB
Ich nochmal:
Ich muss mich mal fix bedanken!! trotz meiner "blöden" erklärungen konntet ihr (besonders Hajo) mir 100% helfen!
sehr gutes Forum!
Ich muss mich mal fix bedanken!! trotz meiner "blöden" erklärungen konntet ihr (besonders Hajo) mir 100% helfen!
sehr gutes Forum!

