Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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
Inhaltsverzeichnis

Combobox in Userform

Combobox in Userform
07.09.2016 11:49:02
Alex
Hallo Ihr Lieben,
ich habe mich an einem Anlagenkataster probiert.
Bin mit der Funktionalität bis dato recht zufrieden, wobei ich ein Problem mit meinen Comboboxen in der Userform bekomme.
Die Aufmachung wird deutlich in der angehängten Datei.
Habe folgenden Code:

Option Explicit
Option Compare Text
Private Sub ComboBox1_Click()
With Me.ComboBox1
.AddItem " "
.AddItem "Ja"
.AddItem "Nein"
.ListIndex = 1
End With
End Sub
Private Sub CommandButton1_Click()
Dim lZeile As Long
lZeile = 2
Do While Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))  ""
lZeile = lZeile + 1
Loop
Tabelle9.Cells(lZeile, 1) = CStr("Neuer Eintrag Zeile " & lZeile)
ListBox1.AddItem CStr("Neuer Eintrag Zeile " & lZeile)
ListBox1.ListIndex = ListBox1.ListCount - 1
End Sub
Private Sub CommandButton2_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = 2
Do While Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))  ""
If ListBox1.Text = Trim(CStr(Tabelle9.Cells(lZeile, 1).Value)) Then
Tabelle9.Rows(CStr(lZeile & ":" & lZeile)).Delete
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do
End If
lZeile = lZeile + 1
Loop
End Sub
Private Sub CommandButton3_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
If Trim(CStr(TextBox1.Text)) = "" Then
MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
lZeile = 2
Do While Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))  ""
If ListBox1.Text = Trim(CStr(Tabelle9.Cells(lZeile, 1).Value)) Then
Tabelle9.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
Tabelle9.Cells(lZeile, 2).Value = TextBox2.Text
Tabelle9.Cells(lZeile, 3).Value = TextBox3.Text
Tabelle9.Cells(lZeile, 4).Value = TextBox4.Text
Tabelle9.Cells(lZeile, 5).Value = TextBox5.Text
Tabelle9.Cells(lZeile, 6).Value = TextBox6.Text
Tabelle9.Cells(lZeile, 7).Value = TextBox7.Text
Tabelle9.Cells(lZeile, 8).Value = TextBox8.Text
Tabelle9.Cells(lZeile, 9).Value = TextBox9.Text
Tabelle9.Cells(lZeile, 10).Value = TextBox10.Text
Tabelle9.Cells(lZeile, 12).Value = TextBox11.Text
Tabelle9.Cells(lZeile, 14).Value = TextBox12.Text
Tabelle9.Cells(lZeile, 16).Value = TextBox13.Text
Tabelle9.Cells(lZeile, 18).Value = TextBox14.Text
Tabelle9.Cells(lZeile, 20).Value = TextBox15.Text
Tabelle9.Cells(lZeile, 22).Value = TextBox16.Text
Tabelle9.Cells(lZeile, 24).Value = TextBox17.Text
Tabelle9.Cells(lZeile, 26).Value = TextBox18.Text
Tabelle9.Cells(lZeile, 28).Value = TextBox19.Text
Tabelle9.Cells(lZeile, 30).Value = TextBox20.Text
Tabelle9.Cells(lZeile, 32).Value = TextBox21.Text
Tabelle9.Cells(lZeile, 34).Value = TextBox22.Text
If ListBox1.Text  Trim(CStr(TextBox1.Text)) Then
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End If
Exit Do
End If
lZeile = lZeile + 1
Loop
End Sub
Private Sub CommandButton4_Click()
Unload Me
End Sub
Private Sub ListBox1_Click()
Dim lZeile As Long
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
TextBox15 = ""
TextBox16 = ""
TextBox17 = ""
TextBox18 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
ComboBox1 = " "
If ListBox1.ListIndex >= 0 Then
lZeile = 2
Do While Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))  ""
If ListBox1.Text = Trim(CStr(Tabelle9.Cells(lZeile, 1).Value)) Then
TextBox1 = Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))
TextBox2 = Tabelle9.Cells(lZeile, 2).Value
TextBox3 = Tabelle9.Cells(lZeile, 3).Value
TextBox4 = Tabelle9.Cells(lZeile, 4).Value
TextBox5 = Tabelle9.Cells(lZeile, 5).Value
TextBox6 = Tabelle9.Cells(lZeile, 6).Value
TextBox7 = Tabelle9.Cells(lZeile, 7).Value
TextBox8 = Tabelle9.Cells(lZeile, 8).Value
TextBox9 = Tabelle9.Cells(lZeile, 9).Value
TextBox10 = Tabelle9.Cells(lZeile, 10).Value
TextBox11 = Tabelle9.Cells(lZeile, 12).Value
TextBox12 = Tabelle9.Cells(lZeile, 14).Value
TextBox13 = Tabelle9.Cells(lZeile, 16).Value
TextBox14 = Tabelle9.Cells(lZeile, 18).Value
TextBox15 = Tabelle9.Cells(lZeile, 20).Value
TextBox16 = Tabelle9.Cells(lZeile, 22).Value
TextBox17 = Tabelle9.Cells(lZeile, 24).Value
TextBox18 = Tabelle9.Cells(lZeile, 26).Value
TextBox19 = Tabelle9.Cells(lZeile, 28).Value
TextBox20 = Tabelle9.Cells(lZeile, 30).Value
TextBox21 = Tabelle9.Cells(lZeile, 32).Value
TextBox22 = Tabelle9.Cells(lZeile, 34).Value
TextBox23 = Tabelle9.Cells(lZeile, 1).Value
TextBox24 = Tabelle9.Cells(lZeile, 4).Value
ComboBox1 = Tabelle9.Cells(lZeile, 11).Value
Exit Do
End If
lZeile = lZeile + 1
Loop
End If
End Sub
Private Sub TextBox10_Change()
'Sheets("Gebäudekennwerte").Range("J9").Value = Me.TextBox10.Value
End Sub
Private Sub TextBox23_Change()
TextBox23.Locked = True
End Sub
Private Sub TextBox24_Change()
TextBox24.Locked = True
End Sub
Private Sub UserForm_Activate()
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End Sub
Private Sub UserForm_Initialize()
Dim lZeile As Long
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
TextBox15 = ""
TextBox16 = ""
TextBox17 = ""
TextBox18 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
ComboBox1 = " "
ListBox1.Clear
lZeile = 2
Do While Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))  ""
ListBox1.AddItem Trim(CStr(Tabelle9.Cells(lZeile, 1).Value))
lZeile = lZeile + 1
Loop
End Sub
Meine Comboboxen sollen in Grundstellung eine Leerzeichen ausspucken und als Auswahl die Variante
1. Leerzeichen
2. Ja
3. Nein
Diese sollen ebenfalls dynamisch in meine Liste übertragen werden.
Ich war schon an dem Punkt das in den Comboboxen diese Möglichkeiten aufgelistet werden, jedoch wurde die Auswahlliste durch wiederholtes Klicken der Schaltfläche dupliziert, sodass ich immer wieder diese 3 Argumente zusätzlich in meine Auswahlbox erhalte - ich denke das das keiner genau versteht, es sieht dann nach mehrfachen Klicken im Auswahlfenster folgendermaßen aus:
1.
2. Ja
3. Nein
1.
2. Ja
3. Nein
1.
2. Ja
3. Nein
1.
2. Ja
3. Nein
etc...
https://www.herber.de/bbs/user/108064.xlsm
Ich hoffe, dass mir da einer unter die Arme greifen kann.
Viele Grüße
Alex

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

Betreff
Datum
Anwender
Anzeige
AW: Combobox in Userform
07.09.2016 11:58:02
Werner
Hallo Alex,
Private Sub ComboBox1_Click()
With Me.ComboBox1
.Clear
.AddItem " "
.AddItem "Ja"
.AddItem "Nein"
.ListIndex = 1
End With
End Sub
Gruß Werner
AW: Combobox in Userform
07.09.2016 12:00:13
Gerd
Hallo Alex!
Schreibe die "AddItem"-Methode nicht in den Click-Ereigniscode des(r) Steuerelemente(s), sondern beim Userform-Code direkt.
Private Sub UserForm_Activate()
With Me.ComboBox1
.Clear
.AddItem " "
.AddItem "Ja"
.AddItem "Nein"
.ListIndex = 1
End With
End Sub

Gruß Gerd
AW: Combobox in Userform
07.09.2016 20:37:13
Jürgenn
hätte auch Werners Idee gemacht.
LG Jürgen
Anzeige
ohne AddItem ...
07.09.2016 12:54:36
Rudi
Hallo,
... per List-Eigenschaft
ComboBox1.List = Array("", "Ja", "Nein")
Gruß
Rudi
AW: ohne AddItem ...
07.09.2016 13:24:14
Alex
Ich danke Euch vielmals es funktioniert :)
LG
Alex

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige