Ich habe folgenden Code:
Private Sub CommandButton1_Click()
FreieZeile = (Worksheets(„Stunden“).Cells(Rows.Count, 1).End(xlUp).Row) + 1
For i = 2 To 100
If Cells(i, 1).Value = TextBox1.Value Then
Cells(i, 3).Value = Cells(i, 3).Value + TextBox2.Value
Else
Cells(FreieZeile, 1).Value = TextBox1.Value
Cells(FreieZeile, 2).Value = „'0810“
Cells(FreieZeile, 3).Value = TextBox2.Value
End If
Next i
End Sub
Damit soll eigendlich, wenn der Wert von Textbox1 in Spalte Aschon vorhanden ist, der Wert in Spalte C + der Wert von Textbox2 in Spalte C geschrieben werden.
Leider fügt es aber die Werte immer in eine neue Zeile.
Bei der IF Zeile musst du „==“ schreiben um die Werte zu vergleichen. Ein „=“ bedeutet eine Zuweisung. Somit wird bei dir immer der gleiche IF Zweig ausgeführt
In der TextBox steht - wie der Name schon sagt - Text. Selbst wenn du Zahlen eintippst, werden die als Text behandelt.
In der Zelle kann auch eine Zahl stehen, die mit „Value“ abgerufen aber eben kein Text ist.
Der Vergleich von Text und Zahlen verlangt eine Umwandlung des einen in das andere. Also entweder erlaubst du nur Zahlen und schreibst
If Cells(i, 1).Value = val(TextBox1.Value) Then
oder - was viel flexibler und robuster ist - du behandelst den Zellwert als Text und schreibst