07.09.2017, 15:05
Hallo,
Ich habe in meiner UserFrom 5 ComboBoxen.
Wenn in Combobox 1 etwas ausgewählt wurde, soll er die erste leere Zeile beschriften
wenn in ComboBox 2 etwas ausgewählt wurde, soll er die erste und zweite leere Zeile, jeweils mit den werten der entsprechenden Comboboxen, beschriften
wenn in ComboBox 3 etwas ausgewählt wurde, soll er die erste, zweite und dritte leere Zeile, jeweils mit den werten der entsprechenden Comboboxen, beschriften
...
Bsp.: Combobox1 = Nr 1 ausgewählt
Combobox2 = Nr 2 ausgewählt
Combobox3 = nichts ausgewählt
Ergebnis:
1 freie Zeile = Combobox 1
2 freie Zeile = Combobox 2
3 freie Zeile = bleibt frei
Mein Code funktioniert nur, wenn ich in allen 5 Comboboxen etwas auswähle, dann beschiftet er mir auch 5 Zeilen.
Aber sobald ich nur eine Combobox auswähle, funktioniert es nicht.
Das einzige was mir einfallen würde, wäre eine "verschachtelet" if funktion,
Wenn Combobox 5 = "ausgewählt" dann beschrifte Zeile 1-5 sonst wenn (ElseIf) Combobox 4 = "Ausgewählt" dann beschrifte Zeile 1-4........ etc
Aber da gibt es doch bestimmt eine bessere Lösung
Ich habe in meiner UserFrom 5 ComboBoxen.
Wenn in Combobox 1 etwas ausgewählt wurde, soll er die erste leere Zeile beschriften
wenn in ComboBox 2 etwas ausgewählt wurde, soll er die erste und zweite leere Zeile, jeweils mit den werten der entsprechenden Comboboxen, beschriften
wenn in ComboBox 3 etwas ausgewählt wurde, soll er die erste, zweite und dritte leere Zeile, jeweils mit den werten der entsprechenden Comboboxen, beschriften
...
Bsp.: Combobox1 = Nr 1 ausgewählt
Combobox2 = Nr 2 ausgewählt
Combobox3 = nichts ausgewählt
Ergebnis:
1 freie Zeile = Combobox 1
2 freie Zeile = Combobox 2
3 freie Zeile = bleibt frei
Mein Code funktioniert nur, wenn ich in allen 5 Comboboxen etwas auswähle, dann beschiftet er mir auch 5 Zeilen.
Aber sobald ich nur eine Combobox auswähle, funktioniert es nicht.
Code:
If ComboBox1 Then
X = Sheets("Lieferscheine").Range("A65536").End(xlUp).Row
Sheets("Lieferscheine").Cells(X + 1, 1) = Format(TextBox1.Text, "dd.mm.yyyy")
Sheets("Lieferscheine").Cells(X + 1, 2) = TextBox2.Text
Sheets("Lieferscheine").Cells(X + 1, 3) = ListBox1.Text
Sheets("Lieferscheine").Cells(X + 1, 4) = ComboBox1.Text
Sheets("Lieferscheine").Cells(X + 1, 5) = TextBox3.Text
Sheets("Lieferscheine").Cells(X + 1, 6) = TextBox4.Text
End If
If ComboBox2 Then
Sheets("Lieferscheine").Cells(X + 2, 1) = Format(TextBox1.Text, "dd.mm.yyyy")
Sheets("Lieferscheine").Cells(X + 2, 2) = TextBox2.Text
Sheets("Lieferscheine").Cells(X + 2, 3) = ListBox1.Text
Sheets("Lieferscheine").Cells(X + 2, 4) = ComboBox2.Text
Sheets("Lieferscheine").Cells(X + 2, 5) = TextBox5.Text
Sheets("Lieferscheine").Cells(X + 2, 6) = TextBox6.Text
End If
If ComboBox3 Then
Sheets("Lieferscheine").Cells(X + 3, 1) = Format(TextBox1.Text, "dd.mm.yyyy")
Sheets("Lieferscheine").Cells(X + 3, 2) = TextBox2.Text
Sheets("Lieferscheine").Cells(X + 3, 3) = ListBox1.Text
Sheets("Lieferscheine").Cells(X + 3, 4) = ComboBox3.Text
Sheets("Lieferscheine").Cells(X + 3, 5) = TextBox7.Text
Sheets("Lieferscheine").Cells(X + 3, 6) = TextBox8.Text
End If
If ComboBox4 Then
Sheets("Lieferscheine").Cells(X + 4, 1) = Format(TextBox1.Text, "dd.mm.yyyy")
Sheets("Lieferscheine").Cells(X + 4, 2) = TextBox2.Text
Sheets("Lieferscheine").Cells(X + 4, 3) = ListBox1.Text
Sheets("Lieferscheine").Cells(X + 4, 4) = ComboBox4.Text
Sheets("Lieferscheine").Cells(X + 4, 5) = TextBox9.Text
Sheets("Lieferscheine").Cells(X + 4, 6) = TextBox10.Text
End If
If ComboBox5 Then
Sheets("Lieferscheine").Cells(X + 5, 1) = Format(TextBox1.Text, "dd.mm.yyyy")
Sheets("Lieferscheine").Cells(X + 5, 2) = TextBox2.Text
Sheets("Lieferscheine").Cells(X + 5, 3) = ListBox1.Text
Sheets("Lieferscheine").Cells(X + 5, 4) = ComboBox5.Text
Sheets("Lieferscheine").Cells(X + 5, 5) = TextBox11.Text
Sheets("Lieferscheine").Cells(X + 5, 6) = TextBox12.Text
End If
Das einzige was mir einfallen würde, wäre eine "verschachtelet" if funktion,
Wenn Combobox 5 = "ausgewählt" dann beschrifte Zeile 1-5 sonst wenn (ElseIf) Combobox 4 = "Ausgewählt" dann beschrifte Zeile 1-4........ etc
Aber da gibt es doch bestimmt eine bessere Lösung