Thema Datum  Von Nutzer Rating
Antwort
Rot Erweitertes Änderungsprotokoll
20.08.2019 18:00:14 Roger
NotSolved
20.08.2019 18:39:40 weiter mit
NotSolved
21.08.2019 00:29:06 Gast6137
NotSolved

Ansicht des Beitrags:
Von:
Roger
Datum:
20.08.2019 18:00:14
Views:
962
Rating: Antwort:
  Ja
Thema:
Erweitertes Änderungsprotokoll

Moin allerseits, an meinen Tabellen arbeiten mehrere Menschen, was oft dazu führt, dass etwas (vielleicht unabsichtlich) geändert wird. Das möchte ich gerne protokollieren und den Großteil hab ich bereits geschafft. Trotzdem gibt's jetzt Probleme, falls ich damit arbeite:

1. Wenn ich etwas ausschneide und wieder einfüge wird nichts eingefügt (im selben Arbeitsblatt) und in einem anderen stimmt der Wert nicht mehr (zum Beispiel wird im Blatt1 die '54' zu einer '9' im Blatt 2). Ich möchte allerdings nicht auf das Ausschneiden verzichten und somit fällt selection.cut weg

2. Sollte ich mehrere Zellen auf einmal bearbeiten, z.B. in einer Spalte immer den Wert 15000 stehen haben will und den runter ziehe, wird das nicht dokumentiert

3. Es wird ebenfalls nicht dokumentiert, falls der Blattname geändert wird. Brauchbar wäre eine Zelle mit "alter Blattname" und "neuer Blattname" falls er geändert wird

Hier ist schon mal mein Code, vielleicht findet sich ja jemand der mit weiter helfen möchte? 

 

Vielen Dank schonmal! Gruß 

 

Private Sub Workbook_SheetChange(ByVal Sh as Object, ByVal Target As Range)

  Sheets("Protokoll").Unprotect 123

 

  Dim FirstFreeRow As Long

  Dim OldVal As Variant

  Dim NewVal As Variant

  Dim rngNewSel As Range

 

 

User = Application.UserName

 

  If Target.Count > 1 Then Exit Sub

  If Sh.Name = "Protokoll" Then Exit Sub

  If Intersect(Target, Sh.Range("A1:Z999")) Is Nothing Then Exit Sub

 

  Application.EnableEvents = False

 

  NewVal = Target.Value

  Set rngNewSel = Selection

 

  Application.Undo

 

  OldVal = Target.Value

 

  Target.Value = NewVal

 

  On Error Resume Next

  rngNewSel.Activate

  On Error GoTo 0

  With Sheets("Protokoll")

    FirstFreeRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

    .Cells(FirstFreeRow, 1) = Sh.Name

    .Cells(FirstFreeRow, 2) = Target.Address(0, 0)

    .Cells(FirstFreeRow, 3) = OldVal

    .Cells(FirstFreeRow, 4) = Target.Value

    .Cells(FirstFreeRow, 5) = Date

    .Cells(FirstFreeRow, 6) = Time

    .Cells(FirstFreeRow, 7) = User

  End With

 

  Application.EnableEvents = True

 

  Sheets("Protokoll").Protect 123

 

End Sub

 


 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Erweitertes Änderungsprotokoll
20.08.2019 18:00:14 Roger
NotSolved
20.08.2019 18:39:40 weiter mit
NotSolved
21.08.2019 00:29:06 Gast6137
NotSolved