Letzten Benutzer in Excel speichern und auslesen
Schritt-für-Schritt-Anleitung
Hier ist eine einfache Anleitung, um den letzten Benutzer, der eine Excel-Datei gespeichert hat, zu protokollieren. Du benötigst dazu grundlegende Kenntnisse in VBA.
-
Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Füge folgenden Code in das „ThisWorkbook“ Modul ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Nutzer-Protokoll").Visible = True
With Sheets("Nutzer-Protokoll")
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Environ("Username")
.Cells(.Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Value = Date
.Cells(.Cells(Rows.Count, 3).End(xlUp).Row + 1, 3).Value = Time
End With
Sheets("Nutzer-Protokoll").Visible = xlVeryHidden
End Sub
-
Füge den folgenden Code ebenfalls in das „ThisWorkbook“ Modul ein, um den Protokoll-Sichtbarkeit zu steuern:
Private Sub Workbook_Open()
If Environ("Username") <> "Eckstein" Then
Sheets("Nutzer-Protokoll").Visible = xlVeryHidden
Else
Sheets("Nutzer-Protokoll").Visible = True
End If
End Sub
-
Um das letzte Speicher-Datum anzuzeigen, erstelle eine Funktion:
Public Function Speicherdatum()
Application.Volatile
Speicherdatum = ThisWorkbook.BuiltinDocumentProperties("last save time") & " von " & Application.UserName
End Function
-
Rufe diese Funktion in einer Zelle auf, um das Datum anzuzeigen: =Speicherdatum()
Häufige Fehler und Lösungen
-
Fehler: Das Protokoll wird nicht aktualisiert.
- Lösung: Stelle sicher, dass der Code im richtigen Modul platziert ist und dass die Sichtbarkeit der „Nutzer-Protokoll“ korrekt gesetzt ist.
-
Fehler: Der Code wird nicht beim Speichern ausgeführt.
- Lösung: Überprüfe, ob die Makros in deiner Excel-Datei aktiviert sind. Gehe zu
Datei -> Optionen -> Trust-Center -> Einstellungen für das Trust-Center -> Makroeinstellungen.
-
Fehler: Das Datum wird nicht korrekt angezeigt.
- Lösung: Füge
Application.Volatile zur Speicherdatum()-Funktion hinzu, um sicherzustellen, dass die Formel aktualisiert wird.
Alternative Methoden
Eine Alternative zur Verwendung von VBA ist die Nutzung von Excel-Funktionen zur Protokollierung. Du kannst eine einfache Tabelle erstellen, in der die Benutzer manuell ihren Namen und das Datum eintragen. Allerdings bietet dies nicht die gleiche Automatisierung wie VBA.
Praktische Beispiele
Hier sind einige Beispiele, wie du den Code anpassen kannst:
-
Mehrere Benutzer im Protokoll anzeigen:
Ändere den Workbook_Open Code, um mehrere Benutzer zuzulassen:
Private Sub Workbook_Open()
Select Case LCase(Environ("Username"))
Case "eckstein", "mueller", "weber"
Sheets("Nutzer-Protokoll").Visible = True
Case Else
Sheets("Nutzer-Protokoll").Visible = xlVeryHidden
End Select
End Sub
-
Automatisches Aktualisieren der Speicherdatum-Funktion:
Füge die Zeile Application.Calculate in den Workbook_AfterSave Event ein, um sicherzustellen, dass die Zelle mit dem Datum aktualisiert wird:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Application.Calculate
End Sub
Tipps für Profis
- Stelle sicher, dass deine VBA-Codes gut strukturiert und dokumentiert sind, damit du später leichter Änderungen vornehmen kannst.
- Nutze das
Application.Volatile-Kommando, um sicherzustellen, dass deine Funktionen immer aktuell sind, ohne dass Werte manuell geändert werden müssen.
- Überlege, ob du die Benutzerinteraktion mit der Datei weiter einschränken möchtest, indem du die Sichtbarkeit von Blättern gezielt steuerst.
FAQ: Häufige Fragen
1. Wie kann ich mehrere User zum Anzeigen des Protokolls in den VBA-Code eintragen?
Du kannst den Select Case Befehl verwenden, um mehrere Benutzernamen zuzulassen. Füge einfach die Namen in die Case-Anweisung ein.
2. Warum wird das Speicherdatum nicht aktualisiert?
Überprüfe, ob die Formel korrekt in einer Zelle eingegeben ist und ob Application.Volatile in deiner Funktion enthalten ist, um die Aktualisierung zu gewährleisten.