Zum Prüfvermerk Bearbeitungsdatum und Bearbeiter dokumentieren

Arbeiten mehrere Personen mit einer Exceldatei kann es notwendig werden, das jeweilige Bearbeitungsdatum und den zuständigen Ansprechpartner nachvollziehen zu können. Müssen große Listen abgearbeitet werden, kann z.B. eine Spalte für einen Prüfvermerk in die Exceldatei integriert werden. Sind es immer dieselben Eintragungen, die vorgenommen werden sollen, z.B. um im Rahmen einer Bestellabwicklung den aktuellen Status festzustellen kann diese Spalte mit einer Dropdown-Box bereits alle möglichen Vermerke bereitstellen, so dass der Vermerk nur noch aus der Liste ausgewählt werden muss. Um hinterher noch nachvollziehen zu können, wann und wer diesen Vermerk hinzugefügt hat, stelle ich Ihnen heute eine recht einfache Lösung für ein entsprechendes Excel Makro vor. Die Beispieldatei können Sie am Ende des Beitrags herunterladen. Für die Funktion des Makros müssen Makros aktiviert sein!

Im Beispiel (Abb. 1) stehen die Daten der Bestellungen in Spalte A und B. Je nach Umfang Ihrer Liste wird der Bereich sicher einige Spalten mehr beinhalten. Die Spalte für die Prüfvermerke kann direkt rechts neben dem genutzten Spaltenbereich hinzugefügt werden. Im Beispiel also Spalte C. Möchten Sie ebenfalls eine Auswahlbox in dieser Spalte nutzen, können Sie dies gegebenenfalls in der Menüleiste mit der Option “Daten”, “Gültigkeit” realisieren.

Excel Kontrolldokumentation
Abb. 1
Sobald Sie in Spalte C eine Bemerkung auswählen, erstellt das Makro in Spalte D das erste Bearbeitungsdatum. Lag bereits eine Bemerkung vor, die nur geändert wird, wird stattdessen das letzte Bearbeitungsdatum in Spalte E eingetragen. Zusätzlich wird in jedem Fall in Spalte F die Person eingetragen, die diese Auswahl getroffen hat. Das setzt jedoch voraus, dass Excel auf die bearbeitende Person registriert ist! Löschen Sie den Vermerk in Spalte C wieder komplett, werden auch die Einträge in den Spalten D bis F gelöscht.

Das Makro tragen Sie im VBA-Editor im benötigten Tabellenblatt ein.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Zelle As Range
Dim Zeilen As String

Zeilen = Selection.Rows.Count

'Hier die Spalte für den Prüfvermerk eintragen, hier Spalte C von Zeile 2 bis 65536
If Intersect(Target, Range("C2:C65536")) Is Nothing Then Exit Sub

Application.EnableEvents = False

If Zeilen = 1 Then
If Target.Value <> "" Then
If Target.Offset(0, 1).Value = "" Then
'Erste Bearbeitung eine Spalte rechts vom Prüfvermerk
Target.Offset(0, 1).Value = Now
'Person, die die Kontrolle durchgeführt hat drei Spalten rechts vom Prüfvermerk
Target.Offset(0, 3).Value = Application.UserName
Else
'Letzte Bearbeitung zwei Spalten rechts vom Prüfvermerk
Target.Offset(0, 2).Value = Now
Target.Offset(0, 3).Value = Application.UserName
End If
Else
Target.Offset(0, 1).Value = ""
Target.Offset(0, 2).Value = ""
Target.Offset(0, 3).Value = ""
End If
ElseIf Zeilen > 1 Then
For Each Zelle In Selection
Zelle.Offset(0, 1).Value = ""
Zelle.Offset(0, 2).Value = ""
Zelle.Offset(0, 3).Value = ""
Next Zelle
End If

Application.EnableEvents = True

End Sub

Möchten Sie für den Prüfvermerk nicht die Spalte C verwenden, ist im Makro der Code an der Stelle:

Range("C2:C65536")

anzupassen. Die beiden Bearbeitungsdatums und der Kontrolleur werden automatisch in die drei Spalten rechts neben dem Prüfvermerk eingetragen. Möchten Sie auch die Spalten verändern, passen Sie außerdem noch diesen Code an:

Offset(0, 1)

Der erste Wert in der Klammer steht für die Zeile abhängig von der aktuellen Zeile des Prüfvermerks. 0 bedeutet, es wird die gleiche Zeile wie für den Prüfvermerk verwendet. Negative Werte würden in Zeilen darüber den Wert eintragen. Mit dem Wert -3 erfolgt der Eintrag also 3 Zeilen über dem Prüfvermerk, mit einem positiven Wert die entsprechende Zeilenzahl darunter. Der zweite Wert in der Klammer steht folgerichtig für die Spalte. Auch hier würden negative Werte wieder davor, also in Spalten vor dem Prüfvermerk eingetragen, positive Werte danach, also rechts davon. Im Beispiel werden (0, 1) für die Erste Bearbeitung, (0, 2) für die Letzte Bearbeitung und (0, 3) für “Kontrolle erfolgt von” verwendet.

Prüfvermerk und Kontrolldokumentation in Excelkontrolldokumentation.xls

 
Gefällt Ihnen der Beitrag?

1 Gedanke zu “Zum Prüfvermerk Bearbeitungsdatum und Bearbeiter dokumentieren

  1. Ein sehr interessantes Script.
    Ich bräuchte aber eine leicht abgewandelte Version und möchte hier mal um Unterstützung bitten.

    Ich würde gerne in einer Liste mehrere Spalten auf Änderungen überwachen und dann am Ende der Tabelle die Daten in fixen Spalten ausgeben.
    Auf ihr Beispiel bezogen:
    Alle Änderungen in den Spalte A-C sollen in den Spalten D-F vermerkt werden. Jeweils in der selben Zeile.
    Wenn man die Zeile
    If Intersect(Target, Range(“C2:C65536”)) Is Nothing Then Exit Sub
    ändert in
    If Intersect(Target, Range(“A2:C65536”)) Is Nothing Then Exit Sub
    dann werden auch alle Spalten überwacht. Nur leider macht dann natürlich der variable Bezug der Ausgabe z.B.
    Target.Offset(0, 2).Value = Now
    Probleme.
    An welchen Stellen und mit welcher Syntax muss ich nun diese Variable abändern um zu meinem Ziel zu gelangen?

Schreibe einen Kommentar