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

Forumthread: ComboBoxen leeren

ComboBoxen leeren
04.08.2018 12:23:22
Sigi
Hallo,
das leeren der ComboBox 2 funktioniert nicht.
Private Sub CommandButton1_Click()
Dim obj As Object
Me.Tag = "0"
For Each obj In UserForm1.Controls
Select Case TypeName(obj)
Case "TextBox": obj.Text = ""
Case "ComboBox":  obj.Clear
End Select
Next
Me.Tag = "1"
End Sub
Private Sub UserForm_Initialize()
Dim lol As Long
For lol = 1 To 10
ComboBox1.AddItem lol
ComboBox3.AddItem lol
Next
ComboBox1.ListIndex = 2
ComboBox3.ListIndex = 5
TextBox1 = "Salat"
ComboBox2 = "Eier"
End Sub

Danke!
Gruß
Sigi
https://www.herber.de/bbs/user/123124.xlsm
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBoxen leeren
04.08.2018 12:45:04
Gerd
Hallo Sigi!
Case "ComboBox":  obj.Clear: obj.Value = ""

Gruß Gerd
AW: ComboBoxen leeren
04.08.2018 12:47:22
Oberschlumpf
Hi Sigi
ersetz diese Zeile
Case "ComboBox":  obj.Clear

durch
Case "ComboBox":  obj.Clear: obj.Text = ""

In UserForm_Initialize hast du z Bsp bei ComboBox1 den Listeneintrag 3 (ComboBox1.ListIndex = 2) zugewiesen.
An ComboBox2 hast du aber NUR dem Anzeigebereich (ComboBox2.Text) den Wert "Eier" zugewiesen.
Wenn nun mit ComboBox1.Clear (obj.Clear) der Listeninhalt von ComboBox1 gelöscht wird, hat auch ComboBox1.ListIndex(2) keinen Wert mehr. Aus dem Eintrag wird auch der Anzeigebereich bei ComboBox1 gelöscht.
ComboBox2 hat aber gar keinen Listeninhalt. Somit löschst du mit ComboBox2.Clear (obj.Clear) die eh nicht vorhandene Liste bei ComboBox2.
Deshalb ist es hier extra erforderlich, auch den Anzeigebereich mit obj.Text = "" zu löschen.
Hilfts?
Ciao
Thorsten
...noch n kleiner Tipp:
Du deklarierst obj als Objekt-Variable.
Ja, das ist nicht falsch. Alle Buttons, ComboBoxen, Textfelder usw sind Objekte eines Userforms.
Aber "Objekt" ist ein Container, der Unterobjekte enthält.
In Fall eines Userforms handelt es sich um Unterobjekte der Art Controls.
(du verwendest ja auch den Befehl For Each obj In UserForm1.Controls)
Also könntest du obj auch mit Dim obj As Control deklarieren.
Wie gesagt, das ist nur n kleiner Tipp in Bezug auf "sauberer" programmieren.
Dim obj As Object kann auch verwendet werden.
Anzeige
AW: ComboBoxen leeren
04.08.2018 13:14:26
Sigi
Vielen Dank an Euch beide!
Gruß
Sigi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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