kann man Zugriffe auf eine Excel-Datei(bei den Zugriffen wird in der Datei nichts geändert) in der gleichen Datei in einem vesteckten Tabellenblatt Protokollieren?
Grüße
Ralf
Private Sub Workbook_Open()
With Sheets("Protokoll")
.Range("A65536").End(xlUp).Offset(1, 0) = Now
.Range("B65536").End(xlUp).Offset(1, 0) = Environ("Username")
.Visible = xlSheetVeryHidden
End With
ThisWorkbook.Save
End Sub
Das Tabellenblatt "Protokoll" kann nur per VBA bzw über das Eigenschaftsfenster im VBA-Editor eingeblendet werden. Wenn Du das Blatt ganz normal über das Menü einblenden willst, dass ersetze xlSheetVeryHidden durch xlSheetHidden.
Ob so eine Protokollierung in Puncto Datenschutz OK ist, musst Du selber abklären!
Schönen Gruß,
Andi
Um Zugriffe auf eine Excel-Datei zu protokollieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird beim Öffnen der Datei ausgeführt und protokolliert das Zugriffsdatum sowie den Benutzernamen in einem versteckten Tabellenblatt:
Öffne die Excel-Datei.
Drücke ALT + F11, um den VBA-Editor zu öffnen.
Wähle im Projektfenster "DieseArbeitsmappe".
Kopiere den folgenden Code in das Modul:
Private Sub Workbook_Open()
With Sheets("Protokoll")
.Range("A65536").End(xlUp).Offset(1, 0) = Now
.Range("B65536").End(xlUp).Offset(1, 0) = Environ("Username")
.Visible = xlSheetVeryHidden
End With
ThisWorkbook.Save
End Sub
Stelle sicher, dass das Tabellenblatt "Protokoll" existiert, und dass es auf "xlSheetVeryHidden" gesetzt ist.
Speichere die Datei als Makro-fähige Arbeitsmappe (.xlsm).
Aktiviere die Makros, wenn Du die Datei öffnest.
Fehler: Das Protokollblatt wird nicht aktualisiert.
Fehler: Die Datei kann nicht gespeichert werden, wenn sie bereits geöffnet ist.
Wenn Du keine VBA verwenden möchtest, gibt es auch die Möglichkeit, manuell in einem Protokollblatt zu dokumentieren. Du könntest ein einfaches Excel-Formular erstellen, in das die Benutzer ihre Zugriffe manuell eintragen.
Hier ist ein Beispiel, wie das Protokollblatt aussehen könnte:
| Datum und Uhrzeit | Benutzername |
|---|---|
| 01.01.2023 10:00 | MaxMustermann |
| 01.01.2023 10:05 | AnnaSchmidt |
Dies ist eine einfache Möglichkeit, um Zugriffe zu dokumentieren. Das VBA-Skript automatisiert diesen Prozess jedoch und erleichtert die Protokollierung erheblich.
1. Wie kann ich das Protokollblatt einsehen?
Um das Protokollblatt einzusehen, musst Du es im VBA-Editor auf "xlSheetVisible" setzen oder den Code anpassen, um das Blatt sichtbar zu machen.
2. Was passiert, wenn mehrere Benutzer gleichzeitig auf die Datei zugreifen?
Wenn mehrere Benutzer gleichzeitig auf die Datei zugreifen, kann es zu Konflikten kommen, da die Datei zwangsweise gespeichert wird. Dies kann dazu führen, dass der Protokoll-Eintrag nicht erfolgreich durchgeführt wird.