Hallo zusammen,
ich bin erst kürzlich in VBA eingestiegen. Ich wollte einen Audit-Trail programmieren (wie schon viele vor mir) und dachte, das ist ein guter Aufhänger um VBA zu lernen. Daher gleich am Anfang eine Bitte:
Gebt mit bitte KEINEN Code vor, der mir direkt einen perfekten Audit Trail vorgibt, das wäre wie spoilern ;)
Ich hatte mit nachfolgenden Code geschrieben bzw. umgeschrieben (von Vorlagen, die ich bereits einigermaßen verstehe), der tatsächlich für eine kurze Zeit so funktioniert hat, wie ich es mir vorgestellt habe (er hat in Spalte A geschrieben, wer wann welche Zelle geändert hat). Dann hatte ich allerdings noch 2 Variablen hinzugefügt, weil ich noch wollte, dass man erkennt, was genau geändert wurde (strPreviousValue und strCurrentValue).
Und ab dann hat das Makro nichts mehr gemacht und wird, soweit ich das sagen kann, nichtmal mehr als Makro erkannt xD Meine Frage ist jetzt, wo genau der Fehler liegt. Der Code kann ohne Probleme kompiliert werden.
Feedback zum Coding-Stil ist natürlich auch herzlichst willkommen, aber wie bereits gesagt, bitte schreibt mit keinen komplett vorgefertigten Code in die Antworten, ich will mir den ja Stück für Stück selbst erschließen :)
VG
Fabian
Code:
Option Explicit
Dim intLastRow As Integer
Dim wsChangeLog As Worksheet
Dim strPreviousValue As String
Dim strCurrentValue As String
Private Sub Worksheet_ChangeLog(ByVal Target As Range)
'1_---Definitions---
Set wsChangeLog = Sheets("Change Log")
intLastRow = wsChangeLog.Cells(wsChangeLog.Rows.Count, "A").End(xlUp).Row + 1
'2_---Procedure---
If Not Intersect(Target, Range("B1:Z10")) Is Nothing Then
With wsChangeLog
Cells(intLastRow, 1) = Target.Address & " wurde geändert von " & Environ("Username") & " am " & Now
End With
End If
End Sub
|