Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Combobox leeren

Combobox leeren
16.06.2009 21:40:41
Stefan
Combobox leeren
Hallo,
ich würde gerne mit Hilfe eines Makros alle Comboboxen auf meinem Excelblatt leeren bzw. diese auf Wert 0 setzen.
In meinem Beispiel sollte also entweder nichts mehr in den Comboboxen stehen oder der Wert 0.
Grüße
Stefan
https://www.herber.de/bbs/user/62489.xls
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox leeren
16.06.2009 21:46:34
Peter
Hallo Stefan,
ComboBox1.Clear
Gruß Peter
AW: Combobox leeren
16.06.2009 21:49:33
Josef
Hallo Stefan,
füge einen CommandButton ein und weise ihm diesen Code zu.
Private Sub CommandButton1_Click()
  Dim objCBo As OLEObject
  
  For Each objCBo In Me.OLEObjects
    If objCBo.progID = "Forms.ComboBox.1" Then objCBo.Object.ListIndex = -1
  Next
End Sub

Gruß Sepp

Anzeige
AW: Combobox leeren
17.06.2009 10:42:02
Stefan
Morgen,
erst mal danke für die schnelle Hilfe.
@ Josef Ehrensberger
Ich habe einen CommandButton mit dem angegebenen Code erstellt.
Bekomme aber jetzt folgende Meldung:

Laufzeitfehler '381':
Eigenschaft Column konnte nicht abgerufen werden. Index des Eigenschaftenfelds ungültig.


Vielleicht liegt das Problem ja an meinen Comboboxen.


Private Sub ComboBox1_Change()
Tabelle1.Range("c3") = ComboBox1.Column(1)
End Sub
Private Sub ComboBox2_Change()
Tabelle1.Range("c5") = ComboBox2.Column(1)
End Sub


Grüße Stefan

Anzeige
AW: Combobox leeren
17.06.2009 19:06:15
Josef
Hallo Steafn,
dann so.
Private Sub ComboBox1_Change()
  If ComboBox1.ListIndex > -1 Then
    Tabelle1.Range("c3") = ComboBox1.Column(1)
  Else
    Tabelle1.Range("c3") = ""
  End If
End Sub
Private Sub ComboBox2_Change()
  If ComboBox2.ListIndex > -1 Then
    Tabelle1.Range("c5") = ComboBox2.Column(1)
  Else
    Tabelle1.Range("c5") = ""
  End If
End Sub

Private Sub CommandButton1_Click()
  Dim objCBo As OLEObject
  
  For Each objCBo In Me.OLEObjects
    If objCBo.progID = "Forms.ComboBox.1" Then objCBo.Object.ListIndex = -1
    'oder .Listindex = 0 'wenn du den ersten Eintrag auswählen willst!
  Next
End Sub

Gruß Sepp

Anzeige
AW: Combobox leeren
19.06.2009 23:18:34
Stefan
Hallo Sepp,
danke für die Hilfe.
Das Macro läuft jetzt genauso, wie ich es wollte.
Grüße
Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

Combobox in Excel leeren mit VBA


Schritt-für-Schritt-Anleitung

Um alle Comboboxen in Deinem Excel-Blatt zu leeren, kannst Du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne das Excel-Dokument, in dem Du die Comboboxen leeren möchtest.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Klicke im Projektfenster auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code in das Modul ein:

    Private Sub CommandButton1_Click()
       Dim objCBo As OLEObject
       For Each objCBo In Me.OLEObjects
           If objCBo.progID = "Forms.ComboBox.1" Then
               objCBo.Object.ListIndex = -1 ' Leert die Combobox
           End If
       Next
    End Sub
  5. Füge einen CommandButton zu Deinem Excel-Blatt hinzu und weise ihm das obenstehende Makro zu.

  6. Klicke auf den Button, um alle Comboboxen zu leeren.


Häufige Fehler und Lösungen

  • Laufzeitfehler '381': Dieser Fehler tritt auf, wenn der Index für die Column-Eigenschaft ungültig ist. Stelle sicher, dass Du das ListIndex-Attribut korrekt überprüfst. Ändere den Code in den ComboBox_Change-Ereignissen zu:

    If ComboBox1.ListIndex > -1 Then
       Tabelle1.Range("c3") = ComboBox1.Column(1)
    Else
       Tabelle1.Range("c3") = ""
    End If
  • Die Combobox bleibt nicht leer: Überprüfe, ob die progID im Makro korrekt ist. Möglicherweise verwendest Du eine andere Art von Combobox.


Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, kannst Du die Comboboxen auch manuell leeren:

  1. Klicke in die Combobox.
  2. Wähle Daten in der oberen Menüleiste.
  3. Klicke auf Inhalt löschen.

Dies ist jedoch weniger effizient, insbesondere wenn Du viele Comboboxen hast.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Comboboxen in Excel effektiv leeren kannst:

  • Beispiel 1: Leeren einer einzelnen Combobox

    ComboBox1.Clear
  • Beispiel 2: Leeren aller Comboboxen in einem bestimmten Sheet

    Private Sub CommandButton1_Click()
      Dim cBox As Object
      For Each cBox In Tabelle1.OLEObjects
          If TypeName(cBox.Object) = "ComboBox" Then
              cBox.Object.Clear
          End If
      Next cBox
    End Sub

Tipps für Profis

  • Verwende ListIndex = 0, um den ersten Eintrag in der Combobox auszuwählen, anstatt sie zu leeren.
  • Achte darauf, dass die Comboboxen korrekt benannt sind, um Verwirrung beim Zugriff auf die Objekte zu vermeiden.
  • Du kannst auch eine Schleife verwenden, um mehrere Comboboxen gleichzeitig zu bearbeiten, indem Du den For Each-Befehl anwendest.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Comboboxen gleichzeitig leeren?
Verwende eine Schleife mit For Each, um alle Comboboxen auf einmal zu leeren.

2. Welche Excel-Version benötige ich für den VBA-Code?
Der VBA-Code funktioniert in Excel 2007 und späteren Versionen. Stelle sicher, dass Du die Entwicklertools in Deiner Excel-Version aktiviert hast.

3. Was mache ich, wenn die Comboboxen nicht reagieren?
Überprüfe, ob die Comboboxen korrekt in das Arbeitsblatt eingefügt wurden und ob der Code in einem Modul des gleichen Blattes gespeichert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige