Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ComboBox in VBA mit additem füllen

ComboBox in VBA mit additem füllen
09.01.2019 16:32:35
Stefan
Hallo,
das Thema ist oft behandelt worden, aber für mich als VBA Neuling trotzdem nicht gelöst.
Das Ganze soll funktionieren, wenn ich Excel starte und dann das Makro "Go" starte.
Das Makro "Go" erstellt dann eine Active-X Combobox, die mit "a" und "b" vorbelegt ist.
Wie ist hier der VBA Code?
Ich denke, meine Fehler liegen in fehlendem

Private Sub und Userform_?
Aber da sind meine Kenntnisse blank.
Folgender Code funktioniert nicht:
Sub go()
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Left:=50, Top:=50, Width:=90, Height:=25).Activate
.AddItem "a"
.AddItem "b"
End With
End Sub

Wer hat hier die zündende Idee?
Danke und viele Grüße
Stefan
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Lösungsvorschlag
09.01.2019 17:51:00
Beverly
Hi Stefan,
vom Prinzip her so:
Option Explicit
Private Sub Workbook_Open()
With Worksheets("Tabelle1").OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Left:=50, Top:=50, Width:=90, Height:=25).Object
.AddItem "a"
.AddItem "b"
End With
End Sub

Das würde aber bedeuten, dass diese ComboBoc bei jedem Öffnen der Arbeitsmappe erstellt würde - du solltest also vorher prüfen, ob sie bereits existiert, und nur wenn nicht, dann erstellen. Andernfalls würdest du dann zig solcher ComboBoxen übereinander haben...


Anzeige
AW: Lösungsvorschlag
10.01.2019 09:45:13
Stefan
Hallo Karin,
vielen Dank, das passt soweit.
Ich bastele mal weiter und melde mich ggf. mit einem neuen Thread.
Viele Grüße
Stefan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ComboBox in VBA mit additem füllen


Schritt-für-Schritt-Anleitung

Um eine ComboBox in Excel über VBA mit dem additem-Befehl zu füllen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Option Explicit
    
    Private Sub Workbook_Open()
       Dim cmb As Object
       Set cmb = Worksheets("Tabelle1").OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
           Left:=50, Top:=50, Width:=90, Height:=25).Object
       cmb.AddItem "a"
       cmb.AddItem "b"
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und speichere die Arbeitsmappe. Beim nächsten Öffnen der Datei wird die ComboBox automatisch erstellt und mit den Werten "a" und "b" gefüllt.


Häufige Fehler und Lösungen

  • Fehler: ComboBox wird nicht angezeigt.

    • Lösung: Stelle sicher, dass Du die richtige Arbeitsblattbezeichnung (Tabelle1) verwendest und die ComboBox nicht bereits existiert. Du kannst eine Überprüfung einfügen, um doppelte ComboBoxen zu vermeiden.
  • Fehler: .AddItem funktioniert nicht.

    • Lösung: Stelle sicher, dass Du auf das richtige Objekt zugreifst. Der Code cmb.AddItem muss auf das ComboBox-Objekt angewendet werden.

Alternative Methoden

Eine alternative Methode, um eine ComboBox zu füllen, besteht darin, eine UserForm zu verwenden. Hier ein Beispiel:

  1. UserForm erstellen: Im VBA-Editor klicke auf Einfügen > UserForm.
  2. ComboBox hinzufügen: Ziehe eine ComboBox auf die UserForm.
  3. Code für die UserForm: Füge folgenden Code in das UserForm-Modul ein:

    Private Sub UserForm_Initialize()
       ComboBox1.AddItem "a"
       ComboBox1.AddItem "b"
    End Sub

Wenn Du die UserForm anzeigst, wird die ComboBox mit den Items gefüllt.


Praktische Beispiele

Hier ist ein praktisches Beispiel für das Füllen einer ComboBox in einem UserForm:

Private Sub UserForm_Initialize()
    ComboBox1.AddItem "Option 1"
    ComboBox1.AddItem "Option 2"
    ComboBox1.AddItem "Option 3"
End Sub

Mit diesem Code wird die ComboBox beim Initialisieren der UserForm mit drei Optionen gefüllt.


Tipps für Profis

  • Dynamisches Füllen: Du kannst die ComboBox dynamisch füllen, indem Du Werte aus einem Array oder einer Zelle ausliest.

    Dim i As Integer
    For i = 1 To 10
      ComboBox1.AddItem CStr(i)
    Next i
  • Datenquelle: Überlege, eine Datenquelle wie eine Excel-Tabelle als Quelle für die Items zu verwenden. So kannst Du die ComboBox einfach aktualisieren, ohne den VBA-Code ändern zu müssen.


FAQ: Häufige Fragen

1. Wie kann ich eine ComboBox in einer bestehenden UserForm hinzufügen?
Gehe zu Deiner UserForm im VBA-Editor, wähle das Toolbox-Fenster und ziehe eine ComboBox auf die Form.

2. Was mache ich, wenn ich mehrere Items in einer ComboBox benötige?
Du kannst die Methode .AddItem mehrmals aufrufen, um so viele Items hinzuzufügen, wie Du benötigst. Alternativ kannst Du auch ein Array verwenden, um die Items in einer Schleife hinzuzufügen.

3. Wie kann ich die ComboBox bei jedem Öffnen der Datei füllen?
Verwende den Code im Workbook_Open-Ereignis, wie im Schritt-für-Schritt-Abschnitt beschrieben. Dadurch wird die ComboBox jedes Mal gefüllt, wenn die Arbeitsmappe geöffnet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige