Hi,
habe ein Userform erstellt, über das Datensätze aus einer Tabelle angezeigt und aktualisiert werden können. Die aktualisierten Werte sollen in die ursprüngliche Tabellenzeile zurückgeschrieben werden.
Das Problem: während die erste Anweisung nach der If-Schleife ausgeführt wird, ziehen sich die Textboxen den ursprünglichen Wert aus der ListBox, sodass die Aktualisierung überschrieben und die ursprünglichen Daten eingetragen werden.
Lediglich die erste Spalte wird so aktualisiert.
Das Ganze wird über die Msg Boxen deutlich.
Wie kann ich das beheben?
Habe mir die Finger wundgegoogelt und den Kopf zerbrochen - hat jemand eine Idee oder Eingebung? Dafür wäre ich sehr sehr sehr sehr dankbar..
Private Sub UserForm_Initialize()
ListBox_Arbeitspaket.RowSource = Worksheets("Rohdaten").Range("A2:G39").Address(External:=True)
End Sub
Private Sub CommandButton_Eintragen_Click()
Dim Tabellenende As Integer
Tabellenende = Application.WorksheetFunction.CountA(Worksheets("Rohdaten").Range("A:A"))
Dim x As Integer
For x = 2 To Tabellenende
If Worksheets("Rohdaten").Cells(x, 1) = UserForm2.TextBox_BudgetPostenNr.Text Then
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
Exit For
Next
MsgBox "Die Änderung wurde eingetragen."
Unload UserForm2
End Sub
Private Sub ListBox_Arbeitspaket_Click()
With ListBox_Arbeitspaket
UserForm2.TextBox_BudgetPostenNr = .List(.ListIndex, 0)
UserForm2.TextBox_Teilprojekt = .List(.ListIndex, 1)
UserForm2.TextBox_Arbeitspaket = .List(.ListIndex, 2)
UserForm2.ComboBox_Kostenart = .List(.ListIndex, 4)
UserForm2.TextBox_Details = .List(.ListIndex, 5)
UserForm2.TextBox_Geplante_Kosten = .List(.ListIndex, 6)
End With
End Sub
Private Sub ComboBox_Kostenart_Change()
ComboBox_Kostenart.RowSource = Worksheets("Kreditoren und TP Zuordnung").Range("E3:E6").Address(External:=True)
End Sub
Private Sub CommandButton_Abbrechen_Click()
Unload UserForm2
End Sub
|