Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige