Hallo,
ich ändere über ein Userform Daten in einer "Stammdaten" Tabelle, diese Änderungen möchte ich gerne Protokollieren. In der Stammdatentabelle ist in Spalte A der Wert immer einmalig.
Meine idee war wenn ich im Userform denn zu änderten Datensatz ausgewählt habe (Spalte A im Tabellenblatt) und denn "Ändern" Button bestätige das dann der Stammdatensatz in das Tabellenblatt "Protokoll" kopiert wird und um eine ein paar Spaltenwerte ergänzt wird "Alt", "Speicherdatum/Zeit",ÄnderungsUser".
Wenn dann der Datensatz geändert wurde und der "Speicher" Button gedrückt wurde, dann soll unter der vorherigen Zeile die neuen Daten in das "Protokoll" Datenblatt gespeichert werden, wo ebenfalls dann am schluß die 3 Spalten ergänzt werden, nur das aus "Alt", "Neu" wird.
Damit hätte ich immer zu jedem Datensatz den Alten und den neuen Wert direkt untereinander stehen und könnte die Änderungen vergleichen.
und so sollen alle weiteren Änderungen immer in die erste leere Zeile im "Protokoll" Tabellenblatt geschrieben werden.
Hab schon ein paar Tage gegooglet und mich ausprobiert aber irgendwie keine funktionierende Lösung gefunden, es müssten aus meiner Sicht 2 Subs sein, einmal für den Änderungsbutton und einmal für den Speicherbutton.
Vielleicht kann mich hier jemand etwas anstupsen.
Danke
Edit,
ich habe jetzt mal noch ein bisschen herumgetüftelt, aber irgendwie wird mir die lastrow nicht korrekt ermittelt, wenn ich den Code beim "Andern" Button stoppe ist lastRow=7 allerdings müsste 8 richtig sein, so überschreibt er mir immer eine Zeile, da im Protokoll Tabellenblatt zu dem Zeitpunkt wo ich lastrow ermitttel schon 8 Zeile belegt sind.
Woran kann das liegen?
Um die bestehenden Daten in das Protokoll Datenblatt zu kopieren gehe ich jetzt so vor
Bis auf das lastrow Problem funktioniert das auch schon mal.
ich ändere über ein Userform Daten in einer "Stammdaten" Tabelle, diese Änderungen möchte ich gerne Protokollieren. In der Stammdatentabelle ist in Spalte A der Wert immer einmalig.
Meine idee war wenn ich im Userform denn zu änderten Datensatz ausgewählt habe (Spalte A im Tabellenblatt) und denn "Ändern" Button bestätige das dann der Stammdatensatz in das Tabellenblatt "Protokoll" kopiert wird und um eine ein paar Spaltenwerte ergänzt wird "Alt", "Speicherdatum/Zeit",ÄnderungsUser".
Wenn dann der Datensatz geändert wurde und der "Speicher" Button gedrückt wurde, dann soll unter der vorherigen Zeile die neuen Daten in das "Protokoll" Datenblatt gespeichert werden, wo ebenfalls dann am schluß die 3 Spalten ergänzt werden, nur das aus "Alt", "Neu" wird.
Damit hätte ich immer zu jedem Datensatz den Alten und den neuen Wert direkt untereinander stehen und könnte die Änderungen vergleichen.
und so sollen alle weiteren Änderungen immer in die erste leere Zeile im "Protokoll" Tabellenblatt geschrieben werden.
Hab schon ein paar Tage gegooglet und mich ausprobiert aber irgendwie keine funktionierende Lösung gefunden, es müssten aus meiner Sicht 2 Subs sein, einmal für den Änderungsbutton und einmal für den Speicherbutton.
Vielleicht kann mich hier jemand etwas anstupsen.
Danke
Edit,
ich habe jetzt mal noch ein bisschen herumgetüftelt, aber irgendwie wird mir die lastrow nicht korrekt ermittelt, wenn ich den Code beim "Andern" Button stoppe ist lastRow=7 allerdings müsste 8 richtig sein, so überschreibt er mir immer eine Zeile, da im Protokoll Tabellenblatt zu dem Zeitpunkt wo ich lastrow ermitttel schon 8 Zeile belegt sind.
Woran kann das liegen?
Um die bestehenden Daten in das Protokoll Datenblatt zu kopieren gehe ich jetzt so vor
Quellcode
- lastrow = Worksheets("Protokoll").Range("d65536").End(xlUp).Row
- Worksheets("Stammdaten").Activate
- For r = 2 To 3000
- If txtWAWI.Value = Cells(r, 1) Then
- WksStamm.Cells(r, 1).Copy WksProt.Cells(lastrow + 1, 1)
- WksStamm.Cells(r, 2).Copy WksProt.Cells(lastrow + 1, 2)
- WksStamm.Cells(r, 3).Copy WksProt.Cells(lastrow + 1, 3)
- WksStamm.Cells(r, 4).Copy WksProt.Cells(lastrow + 1, 4)
- WksStamm.Cells(r, 5).Copy WksProt.Cells(lastrow + 1, 5)
- WksStamm.Cells(r, 6).Copy WksProt.Cells(lastrow + 1, 6)
- WksStamm.Cells(r, 7).Copy WksProt.Cells(lastrow + 1, 7)
- WksStamm.Cells(r, 8).Copy WksProt.Cells(lastrow + 1, 8)
- WksStamm.Cells(r, 9).Copy WksProt.Cells(lastrow + 1, 9)
- WksStamm.Cells(r, 10).Copy WksProt.Cells(lastrow + 1, 10)
- WksStamm.Cells(r, 11).Copy WksProt.Cells(lastrow + 1, 11)
- WksStamm.Cells(r, 12).Copy WksProt.Cells(lastrow + 1, 12)
- WksStamm.Cells(r, 13).Copy WksProt.Cells(lastrow + 1, 13)
- WksStamm.Cells(r, 14).Copy WksProt.Cells(lastrow + 1, 14)
- WksStamm.Cells(r, 15).Copy WksProt.Cells(lastrow + 1, 15)
- WksStamm.Cells(r, 16).Copy WksProt.Cells(lastrow + 1, 16)
- WksStamm.Cells(r, 17).Copy WksProt.Cells(lastrow + 1, 17)
- WksStamm.Cells(r, 18).Copy WksProt.Cells(lastrow + 1, 18)
- WksStamm.Cells(r, 19).Copy WksProt.Cells(lastrow + 1, 19)
- WksStamm.Cells(r, 20).Copy WksProt.Cells(lastrow + 1, 20)
- WksStamm.Cells(r, 21).Copy WksProt.Cells(lastrow + 1, 21)
- WksStamm.Cells(r, 22).Copy WksProt.Cells(lastrow + 1, 22)
- WksStamm.Cells(r, 23).Copy WksProt.Cells(lastrow + 1, 23)
- WksStamm.Cells(r, 24).Copy WksProt.Cells(lastrow + 1, 24)
- WksStamm.Cells(r, 25).Copy WksProt.Cells(lastrow + 1, 25)
- WksStamm.Cells(r, 26).Copy WksProt.Cells(lastrow + 1, 26)
- WksStamm.Cells(r, 27).Copy WksProt.Cells(lastrow + 1, 27)
- WksProt.Cells(lastrow + 1, 28).Value = "Alt"
- WksProt.Cells(lastrow + 1, 29).Value = Now
- WksProt.Cells(lastrow + 1, 30).Value = Application.UserName
- End If
- Next r
Bis auf das lastrow Problem funktioniert das auch schon mal.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tina“ ()