Hallo Paul,
ein wenig mehr Hintergundinfos wären ganz hilreich gewesen.
z.B. dass Combobox7 nur Zahlenwerte enthält.
Die Sub funktioniert nur solange, wie in Spalte A der Wert enthalten ist, der in Combobox7 eingegeben wurde.
Mir ist schlierhaft, welchen Zweck es erfüllen soll, einen Wert der Combobox7 zuzuweisen, um diesen Wert in der nächsten Zeile wieder neu zu setzen:
ComboBox7.Value = rng.Value
ComboBox7.Value = " "
Der Befehl ...
ActiveSheet.Range("a5:a10000").Cells.Find(What:=Suchen, lookat:=xlWhole).Activate
verursacht einen Fehler, wenn der gesuchte Wert nicht gefunden wurde. Daher wurde dieser verändert:
Sub CommandButton1_Click()
'On Error GoTo EERR
Dim rng As Range
Dim Suchen As Variant
ActiveSheet.[all] = 0
ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Select
ActiveCell.Offset(1, 0).Select
If ComboBox7 <> " " Then
Suchen = ComboBox7.Value
Set rng = ActiveSheet.Range("a5:a10000").Cells.Find(What:=Suchen, lookat:=xlWhole)
If rng Is Nothing Then
GoTo EERR
End If
End If
If IsNumeric(rng.Value) Then
rng.Offset(ColumnOffset:=1).Value = TextBox1.Value
rng.Offset(ColumnOffset:=2).Value = ComboBox2.Value
rng.Offset(ColumnOffset:=3).Value = TextBox3.Value
rng.Offset(ColumnOffset:=4).Value = TextBox4.Value
rng.Offset(ColumnOffset:=5).Value = TextBox5.Value
rng.Offset(ColumnOffset:=6).Value = ComboBox6.Value
rng.Value = rng.Offset(RowOffset:=-1).Value + 1
ComboBox7.Value = rng.Value
ComboBox7.Value = " "
With ActiveSheet
ComboBox7.RowSource = .Range(.Cells(5, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1)).Adress(External:=True)
End With
End If
Exit Sub
EERR:
End Sub
Es ist sinnvoller, mit range-Objekten zu arbeiten.
LG, Ben
|