Also ich würde es so probieren.
Private Sub CommandButton_Eintragen_Click()
Dim Tabellenende As Integer
Tabellenende = Application.WorksheetFunction.CountA(Worksheets("Rohdaten").Range("A:A"))
Dim x As Integer
x = ListBox_Arbeitspaket.ListIndex
If x = -1 Then
MsgBox "Nichts ausgewählt!"
End
Else
x = x + 2 'da du in Zeile 2 startest+2 nicht plus 1
If Worksheets("Rohdaten").Cells(x, 1) = UserForm2.TextBox_BudgetPostenNr.Text Then 'nur zur Absicherung
MsgBox "Prüfung auf Zeilennr. positiv"
Worksheets("Rohdaten").Cells(x, 3) = UserForm2.TextBox_Arbeitspaket.Text
MsgBox "erster Wert eingetragen"
Worksheets("Rohdaten").Cells(x, 5) = UserForm2.ComboBox_Kostenart.Text
MsgBox "zweiter Wert eingetragen"
Worksheets("Rohdaten").Cells(x, 6) = UserForm2.TextBox_Details.Text
Worksheets("Rohdaten").Cells(x, 7) = UserForm2.TextBox_Geplante_Kosten.Text
End If
End If
MsgBox "Die Änderung wurde eingetragen."
Unload UserForm2
End Sub
Aber mal als Frage. Du schreibst : "alle folgenden nicht mehr, da vorher die Werte in den TextBoxen neu aus der Listbox gezogen werden und damit alle Eingaben überschrieben werden." Dazu finde ich aber im Code nix. GIbt es noch irgendwo ein Change Ereignis? Ansonsten, in welchem Code werden die DAten in die Textboxen neu gelesen (geht doch nur beim CLick ereignis). Evt. mal einzelen den Code durchgehen und schauen, wann er wieder zum aktualisieren verzweigt.
Oder probiere es so. Da werden die Daten erst zwischengespeichert und dann eingtragen (unanhängig, was sich in den Textboxen ändert).
Private Sub CommandButton_Eintragen_Click()
Dim Tabellenende As Integer
Dim GeplanteKosten
Dim Details
Dim Kostenart
Dim Arbeitspaket
Tabellenende = Application.WorksheetFunction.CountA(Worksheets("Rohdaten").Range("A:A"))
Dim x As Integer
x = ListBox_Arbeitspaket.ListIndex
If x = -1 Then
MsgBox "Nichts ausgewählt!"
End
Else
GeplanteKosten = UserForm2.TextBox_Geplante_Kosten.Text
Details = UserForm2.TextBox_Details.Text
Kostenart = UserForm2.ComboBox_Kostenart.Text
Arbeitspaket = UserForm2.TextBox_Arbeitspaket.Text
x = x + 2 'da du in Zeile 2 startest+2 nicht plus 1
If Worksheets("Rohdaten").Cells(x, 1) = UserForm2.TextBox_BudgetPostenNr.Text Then 'nur zur Absicherung
MsgBox "Prüfung auf Zeilennr. positiv"
Worksheets("Rohdaten").Cells(x, 3) = Arbeitspaket
MsgBox "erster Wert eingetragen"
Worksheets("Rohdaten").Cells(x, 5) = Kostenart
MsgBox "zweiter Wert eingetragen"
Worksheets("Rohdaten").Cells(x, 6) = Details
Worksheets("Rohdaten").Cells(x, 7) = GeplanteKosten
End If
End If
MsgBox "Die Änderung wurde eingetragen."
Unload UserForm2
End Sub
|