Habe ein kleines Problem.
Lese Daten in eine Listbox ein.
In Textbox 1 bis 3 werden nur Daten angezeigt. Solange in Textbox 1-3 keine Daten vorhanden sind springt mir der Cursor in der Listbox nicht auf die erste Zeile. Wenn aber in den Textboxen 1-3 etwas vorhanden ist und ich in den Textboxen 4-7 etwas eingebe damit es in die Tabelle schreibt und per Zufall zwei Mal einlesen drücke, springt er in die erste Zeile und schreibt dort das gleiche nochmals rein.
Kann mir jemand helfen ?
Private Sub UserForm_Activate()
Dim rngSource As Object
Dim intColums As Integer
ListBox1.ColumnWidths = "3,5cm;6,0cm;0,8cm;1,4cm;5,2cm;2,0cm;2,0cm;2,0cm"
With Worksheets("DatenUForm")
Set rngSource = .Range("A1").CurrentRegion
Set rngSource = rngSource.Offset(1, 1).Resize(rngSource.Rows.Count - 1, rngSource. _
Columns.Count)
With Me.ListBox1
.ColumnCount = 8 'intColums-rows
.ColumnHeads = True
.RowSource = "DatenUForm!" & rngSource.Address
End With
End With
Set rngSource = Nothing
End Sub
Private Sub ListBox1_Click()
' bei Klick in die Listbox werden die daten aus der Tabelle eingelesen
If ListBox1.Tag "" Then Exit Sub
Dim Datensatz As Integer
Datensatz = Daten.ListBox1.ListIndex + 2
With Daten
'.TextBox1.Text = Worksheets("DatenUForm").Cells(Datensatz, 1)
'.TextBox2.Text = Worksheets("DatenUForm").Cells(Datensatz, 3)
'.TextBox3.Text = Worksheets("DatenUForm").Cells(Datensatz, 4)
.TextBox4.Text = Worksheets("DatenUForm").Cells(Datensatz, 5)
.TextBox5.Text = Worksheets("DatenUForm").Cells(Datensatz, 6)
.TextBox6.Text = Worksheets("DatenUForm").Cells(Datensatz, 7) '.Text '''''
On Error Resume Next
.TextBox7.Text = Worksheets("DatenUForm").Cells(Datensatz, 8) '.Text '''''
On Error Resume Next
End With
End Sub
Private Sub CommandButton1_Click()
'Datensatz eintragen
If Me.ListBox1.ListIndex = -1 Then Exit Sub
Dim Datensatz As Integer
Dim ScrollPos As Integer
ScrollPos = Daten.ListBox1.TopIndex
Datensatz = Daten.ListBox1.ListIndex + 2
ListBox1.Tag = 1
'Worksheets("DatenUForm").Cells(Datensatz, 1) = TextBox1
'Worksheets("DatenUForm").Cells(Datensatz, 3) = TextBox2 (Achtung nie benutzen)bringt _
Fehler
'Worksheets("DatenUForm").Cells(Datensatz, 4) = TextBox3
Worksheets("DatenUForm").Cells(Datensatz, 5) = TextBox4
Worksheets("DatenUForm").Cells(Datensatz, 6) = TextBox5
Worksheets("DatenUForm").Cells(Datensatz, 7) = Me.TextBox6.Text 'für Zahlen anstatt _
Text
Worksheets("DatenUForm").Cells(Datensatz, 8) = Me.TextBox7.Text 'für Zahlen anstatt _
Text
ListBox1.Tag = ""
ListBox1.TopIndex = ScrollPos
'Kontrolliert ob bei der Eingabe einer Kontonummer diese Kontonummer schon vergeben ist
If Me.TextBox4 = "" Then Exit Sub
If Application.CountIf(Worksheets("DatenUForm").Range("E2:E1359"), CInt(Me.TextBox4. _
Text)) > 1 Then
Me.TextBox4.Value = ""
MsgBox "Kontonummer ist schon vorhanden!"
Worksheets("DatenUForm").Cells(Datensatz, 5).ClearContents
End If
End Sub
Private Sub CommandButton2_Click()
'Datensatz löschen
'Abbrechen wenn kein Eintrag gewählt wurde
If Me.ListBox1.ListIndex = -1 Then Exit Sub
Dim Datensatz As Integer
Dim ScrollPos As Integer
ScrollPos = Daten.ListBox1.TopIndex
Datensatz = Daten.ListBox1.ListIndex + 2
ListBox1.Tag = 1
Worksheets("DatenUForm").Cells(Datensatz, 5).ClearContents
Worksheets("DatenUForm").Cells(Datensatz, 6).ClearContents
Worksheets("DatenUForm").Cells(Datensatz, 7).ClearContents
Worksheets("DatenUForm").Cells(Datensatz, 8).ClearContents
ListBox1.Tag = ""
ListBox1.TopIndex = ScrollPos
End Sub
Gruss
Lucio