ich arbeite an einer Userform mit welcher man Daten aus einer bestehenden Excel Tabelle laden und auch ändern kann. Die Änderungen können auch gespeichert und sofort übernommen werden. Den Code dafür habe ich, es läuft auch super. Das einzige Problem ist, Do While Cells(i + 1, 1).Value "x"
genau diese Zeile.
Das bedeutet, dass diese Suchfunktion nur dann funktioniert wenn ein X in das Tabellenblatt geschrieben wird. Wenn ich nur "" schreibe funktioniert es nur dann wenn keine leeren Zellen vorhanden sind. Wie könnte ich das Problem lösen? (evtl lässt sich das Do While ersetzen, durch for to oder if ..... )
https://www.sendspace.com/file/mb9udv
Sub getData()
Dim id As String
Dim i As Integer
Dim j As Integer
Dim flag As Boolean
If IsNumeric(UserForm1.TextBox4.Value) Then
flag = False
i = 1
id = UserForm1.TextBox4.Value
Do While Cells(i + 1, 1).Value "x"
If Cells(i + 1, 4).Value = id Then
flag = True
For j = 2 To 6
UserForm1.Controls("TextBox1").Value = Cells(i + 1, 1).Value
UserForm1.Controls("TextBox2").Value = Cells(i + 1, 2).Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 2 To 6
UserForm1.Controls("TextBox1").Value = ""
UserForm1.Controls("TextBox2").Value = ""
Next j
End If
If flag = False Then
End If
Else
ClearForm
End If
End Sub
Sub EditAdd()
Dim id As String
Dim i As Integer
Dim j As Integer
Dim flag As Boolean
Dim emptyRow As Long
If UserForm1.TextBox4.Value "" Then
flag = False
i = 1
id = UserForm1.TextBox4.Value
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
Do While Cells(i + 1, 1).Value "x"
If Cells(i + 1, 4).Value = id Then
flag = True
For j = 2 To 20
Cells(i + 1, 1).Value = UserForm1.Controls("TextBox1").Value
Cells(i + 1, 2).Value = UserForm1.Controls("TextBox2").Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 1 To 20
Cells(emptyRow, 1).Value = UserForm1.Controls("TextBox1").Value
Cells(emptyRow, 1).Value = UserForm1.Controls("TextBox2").Value
Next j
End If
End If
End Sub