Excel VBA – Wie Sie Dateizugriffe protokollieren

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Wollen Sie wissen wann und von wem eine bestimmte Datei geöffnet wurde? Sie können beim Öffnen dieser Datei einfach das Datum, die Zeit und den Namen des Anwenders in einem separaten Tabellenblatt dieser Datei dokumentieren. In diesem Beitrag zeige ich Ihnen, wie das geht.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Öffnen Sie bitte die Entwicklungsumgebung mit der Tastenkombination ALT+F11. Wählen Sie nun das Objekt DieseArbeitsmappe aus. Beim Öffnen der Datei wird die Prozedur Workbook_Open automatisch durchlaufen.
DieseArbeitsmappe Objekt
In der Entwicklungsumgebung können Sie die Eigenschaften des Tabellenblattes so verändern, dass die Sichtbarkeit nur im VBA Editor oder über VBA Code verändert wird. Wenn Sie die Eigenschaft Visible auf xlSheetVeryHidden setzen, kann das Blatt von normalen Benutzern nicht mehr eingeblendet werden. Wir nutzen diese Eigenschaft um unser Logblatt vor anderen Benutzern zu verstecken.
Eigenschaft Visible

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim lngLastRow As Long

Set ws = Worksheets("Log")
ws.Visible = xlSheetVeryHidden ' versteckt

End Sub

Als Nächstes ermitteln die erste leere Zeile des Blattes.

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim lngLastRow As Long

Set ws = Worksheets("Log")

ws.Visible = xlSheetVeryHidden ' versteckt

'Erste leere Zeile bestimmen
lngLastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
End Sub

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Anschließend schreiben wir das Datum, die Zeit und den Benutzernamen in diese Zeile. Danach wird das Workbook gespeichert.

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim lngLastRow As Long

Set ws = Worksheets("Log")

ws.Visible = xlSheetVeryHidden ' versteckt

'Erste leere Zeile bestimmen
lngLastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1

With ws
'Datum und Zeit protokollieren
.Cells(lngLastRow, 1).Value = Format(Now, "DDD, DD.MM.YY hh:mm")
'Benutzernamen protokollieren
.Cells(lngLastRow, 2).Value = Application.UserName
End With

'Fehlerbehandlung, falls Datei von nicht beschreibbarem Medium geöffnet wird
On Error Resume Next
ThisWorkbook.Save

End Sub

Das Ergebnis sieht wie folgt aus:
Protokollierte Zugriffe
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Bildquelle: Pixabay, CC0 Public Domain

1 Kommentar
  1. LutLo
    LutLo sagte:

    Im Großen und Ganzen funktioniert die Protokollierung. Aber ich habe festgestellt, dass es auch nicht protokollierte Zugriffe gibt. Wenn ich versuche die Datei zu öffnen erscheint der Hinweis das bereits der Nutzer XYZ Zugriff hat und ich nur im Lesemodus zugreifen kann. Schaue ich später in das Protokoll ist dieser Nutzer nicht aufgeführt. Warum nicht?

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.