ich möchte mehrere Comboboxen einer Userform mit den gleichen Werten füllen. Wie kann ich diese Comboboxen in einer Schleife ansprechen ?
Danke
Lutz
ich möchte mehrere Comboboxen einer Userform mit den gleichen Werten füllen. Wie kann ich diese Comboboxen in einer Schleife ansprechen ?
Danke
Lutz
dim cb as object
for each cb in userform1.controls
if typename(cb) = "ComboBox" then
cb.additem 'dein text
end if
next
gruß andi
Oder du füllst nur eine Combobox und füllst am Ende die anderen Combobox mit dem Inhalt der ersten Combobox...
z.B.
'Combobox1 füllen
dim i as byte
for i = 2 to 10
Controls("ComboBox" & i).List = ComboBox1.List
Next i
Gruss
Chris
UserForm erstellen: Öffne dein Excel und erstelle eine UserForm.
Comboboxen hinzufügen: Füge mehrere Comboboxen zu deiner UserForm hinzu. Du kannst sie im Toolbox-Fenster auswählen.
VBA-Editor öffnen: Klicke mit der rechten Maustaste auf die UserForm und wähle „Code anzeigen“.
Code eingeben: Füge den folgenden Code in die UserForm_Initialize
-Prozedur ein, um die Comboboxen zu füllen:
Private Sub UserForm_Initialize()
Dim cb As Object
For Each cb In Me.Controls
If TypeName(cb) = "ComboBox" Then
cb.AddItem "Wert 1"
cb.AddItem "Wert 2"
cb.AddItem "Wert 3"
End If
Next cb
End Sub
UserForm ausführen: Schließe den VBA-Editor und führe die UserForm aus. Du solltest nun sehen, dass alle Comboboxen mit den angegebenen Werten gefüllt sind.
Fehler: „Typ Mismatch“ beim Ausführen des Codes.
Fehler: Comboboxen bleiben leer.
UserForm_Initialize
-Prozedur korrekt platziert ist und dass beim Laden der UserForm die Prozedur automatisch aufgerufen wird.Eine alternative Methode besteht darin, nur eine Combobox mit Werten zu füllen und dann die anderen Comboboxen mit diesen Werten zu befüllen. Hier ist ein Beispiel:
Private Sub UserForm_Initialize()
Dim i As Byte
For i = 1 To 10
ComboBox1.AddItem "Wert " & i
Next i
For i = 2 To 10
Controls("ComboBox" & i).List = ComboBox1.List
Next i
End Sub
Diese Methode ist besonders nützlich, wenn du viele Comboboxen hast und sicherstellen möchtest, dass sie den gleichen Inhalt haben.
Füllen von drei Comboboxen:
Private Sub UserForm_Initialize()
Dim x As Byte, y As Byte
For x = 1 To 3
For y = 1 To 10
Controls("ComboBox" & x).AddItem "Item " & y
Next y
Next x
End Sub
Dynamisches Füllen basierend auf einer Auswahl: Wenn du eine Combobox hast, die andere Comboboxen basierend auf der Auswahl füllt, kannst du den folgenden Code verwenden:
Private Sub ComboBox1_Change()
Dim i As Integer
ComboBox2.Clear
For i = 1 To 10
ComboBox2.AddItem "Option " & i & " für " & ComboBox1.Value
Next i
End Sub
1. Frage
Wie kann ich die Werte einer Combobox dynamisch ändern?
Antwort: Du kannst die Change
-Ereignisprozedur der Combobox nutzen, um auf Änderungen zu reagieren und den Inhalt anderer Comboboxen entsprechend anzupassen.
2. Frage
Welche Excel-Version benötige ich für UserForms?
Antwort: UserForms sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen