habe ein neues Problem.
Habe eine Listbox die beim Start der Userform gefüllt wird.
Wenn ich einen Eintrag aus der Listbox anklicke sollen weitere Daten in verschiedene Textboxen ausgegeben werden. Jedoch funktioniert mein Code nicht :(
Kann jemand erkennen warum !?
Private i
Private Sub CommandButton1_Click()
TextBox1.Enabled = True
CommandButton2.Visible = True
ListBox1.Enabled = False
CommandButton1.Visible = False
'Suchen der nächsten leeren Zeile in Spalte A,
'die letzte zu durchsuchende Zeile ist 60000
For i = 1 To 60000 'Festlegen der Zeilen, in denen das Makro suchen soll
If Worksheets("Angebote").Cells(i, 0).Value = "" Then Exit For 'wenn leere Zelle gefunden
Next
'Textboxen leeren
TextBox1.text = ""
TextBox2.text = ""
TextBox3.text = ""
TextBox4.text = ""
TextBox5.text = ""
TextBox6.text = ""
'i ist jetzt die Zeilennummer der leeren Zelle
'und die Eingabe der Angaben zum neuen Element kann beginnen.
'Damit das Eingeben gleich beginnen kann, Cursor in
'Textbox1 (Namen) setzen:
TextBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
'Wenn kein neues Element eingetragen wurde,
'alle Textboxen leeren
If TextBox1.text = "" Then
TextBox2.text = ""
TextBox3.text = ""
TextBox4.text = ""
TextBox5.text = ""
TextBox6.text = ""
End If
'Textboxinhalte in Zeile i (gefundene leere Zeile übernehmen)
Worksheets("Angebote").Cells(i, 0).Value = TextBox1.text
Worksheets("Angebote").Cells(i, 1).Value = TextBox2.text
Worksheets("Angebote").Cells(i, 2).Value = TextBox3.text
Worksheets("Angebote").Cells(i, 3).Value = TextBox4.text
Worksheets("Angebote").Cells(i, 4).Value = TextBox5.text
Worksheets("Angebote").Cells(i, 5).Value = TextBox6.text
'Da das neue Element jetzt noch nicht in der Listbox
'auftaucht, muß es nun eingelesen werden.
'Dazu gibt es viele Möglichkeiten, aus meiner Erfahrung
'heraus ist die folgende die sicherste.
'Listbox1 leeren
ListBox1.Clear
'Listbox neu füllen
For i = 1 To 60000
If Worksheets("Angebote").Cells(i, 0).Value "" Then ListBox1.AddItem (Worksheets(" _
Angebote").Cells(i, 0).Value)
Next
'Elemente der Userform zurücksetzen:
TextBox1.Enabled = False
CommandButton2.Visible = False
ListBox1.Enabled = True
CommandButton1.Visible = True
'Ab jetzt nimmt i immer wieder den Wert des
'Listindexes der Listbox 1 + 5 an.
'Damit die Auswahl gleich weitergehen kann,
'Listbox1 aktivieren
ListBox1.SetFocus
End Sub
Private Sub ListBox1_Click()
i = ListBox1.ListIndex + 5
Beep
TextBox1.text = i
TextBox2.text = Worksheets("Angebote").Range(i, 1).Value
TextBox3.text = Worksheets("Angebote").Range(i, 2).Value
TextBox4.text = Worksheets("Angebote").Range(i, 3).Value
TextBox5.text = Worksheets("Angebote").Range(i, 4).Value
TextBox6.text = Worksheets("Angebote").Range(i, 5).Value
End Sub
Private Sub TextBox1_Change()
If ListBox1.ListIndex = -1 Then Exit Sub
Worksheets("Angebote").Cells(i, 0).Value = TextBox1.text
End Sub
Private Sub TextBox2_Change()
If ListBox1.ListIndex = -1 Then Exit Sub
Worksheets("Angebote").Cells(i, 1).Value = TextBox2.text
End Sub
Private Sub TextBox3_Change()
If ListBox1.ListIndex = -1 Then Exit Sub
Worksheets("Angebote").Cells(i, 2).Value = TextBox3.text
End Sub
Private Sub TextBox4_Change()
If ListBox1.ListIndex = -1 Then Exit Sub
Worksheets("Angebote").Cells(i, 3).Value = TextBox4.text
End Sub
Private Sub TextBox5_Change()
If ListBox1.ListIndex = -1 Then Exit Sub
Worksheets("Angebote").Cells(i, 4).Value = TextBox5.text
End Sub
Private Sub TextBox6_Change()
If ListBox1.ListIndex = -1 Then Exit Sub
Worksheets("Angebote").Cells(i, 5).Value = TextBox6.text
End Sub
Private Sub UserForm_Activate()
Dim lxRow As Long
lxRow = 2
ListBox1.Clear
Do While Worksheets("Angebote").Cells(lxRow, 1).text ""
ListBox1.AddItem Worksheets("Angebote").Cells(lxRow, 1).text
lxRow = lxRow + 1
Loop
End Sub
Vielen Dank