Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA um Historie zu sehen wer Datei geöffnet hat

VBA um Historie zu sehen wer Datei geöffnet hat
26.06.2013 16:10:22
Geza
Hallo an alle VBA cracks
ich möchte bei einer Datei tracken welche user diese Datei wie oft nutzen. Deshalb möchte ich ein makro im Hintergrund laufen lassen welches beim öffnen der Datei den User und das Datum in dem sheet" Zugriff" der Datei hinterlegt.
Ich habe folgende VBA welchen mir das zwar hinterlegt, nicht aber automatisch beim öffnen der Datei. Meine VBA kenntnissse sind überschaubar...
' Zugriffsprotokoll (Wer hat wann verwendet)
Sheets("Zugriff").Select
Dim LoLetzte As Long
With Worksheets("Zugriff")
LoLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) + 1
Cells(LoLetzte, 1) = Environ("username")
Cells(LoLetzte, 2) = Now
End With

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA um Historie zu sehen wer Datei geöffnet hat
26.06.2013 16:18:28
UweD
Hallo
der Code muss in "DieseArbeitsmappe"
Private Sub Workbook_Open()
' Zugriffsprotokoll (Wer hat wann verwendet)
Dim LoLetzte As Long
With Worksheets("Zugriff")
LoLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row,  _
Rows.Count) + 1
.Cells(LoLetzte, 1) = Environ("username")
.Cells(LoLetzte, 2) = Now
End With
End Sub

- auf Select kann verzichtet werden, wenn du innerhalb With.. das richtige Blatt ansprichst.
- Das Blatt Zugriff kann auch ausgeblendet sein
Gruß UweD

Anzeige
was ist wenn....
26.06.2013 16:28:42
selli
hallo geza,
was ist, wenn der user makros deaktiviert hat?
was ist, wenn die datei nur geöffnet, aber nicht gespeichert wird?
gruß
selli

AW: VBA um Historie zu sehen wer Datei geöffnet hat
26.06.2013 17:36:31
Geza
Hallo Uwe
super! Klappt perfekt und nun klappt es auch mit dem Ausblenden Herzlichen Dank
Géza

AW: VBA um Historie zu sehen wer Datei geöffnet hat
27.06.2013 08:02:10
UweD
Hallo nochmal
um die Gedanken von selli aufzugreifen...
Sicherlich kann man das weiter ausbauen
- alle Blätter ausblenden
- nur Hinweisblatt sichtbar, das aussagt, dass die Datei nur mit Makros zu öffnen ist
- wenn mit Makro geöffnet wird, dann die Blätter entsprechend ein /ausblenden
- beim schliessen alles wieder zurück...
das war aber nicht gefragt.
das mit dem "Ohne speichern verlassen" das könnte aber so noch abgefangen werden.
Private Sub Workbook_Open()
' Zugriffsprotokoll (Wer hat wann verwendet)
Dim LoLetzte As Long
With Worksheets("Zugriff")
LoLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), _
.Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) + 1
.Cells(LoLetzte, 1) = Environ("username")
.Cells(LoLetzte, 2) = Now
End With
ThisWorkbook.Save
End Sub

Gruß UweD
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA zur Verfolgung der Dateizugriffe in Excel


Schritt-für-Schritt-Anleitung

Um zu tracken, wer eine Excel-Datei geöffnet hat, kannst du VBA (Visual Basic for Applications) verwenden. Folge diesen Schritten:

  1. Öffne die Excel-Datei, in der du die Zugriffsprotokollierung einrichten möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Im Projektfenster, suche nach "DieseArbeitsmappe". Klicke darauf.

  4. Füge den folgenden Code in das Fenster ein:

    Private Sub Workbook_Open()
        ' Zugriffsprotokoll (Wer hat wann verwendet)
        Dim LoLetzte As Long
        With Worksheets("Zugriff")
            LoLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), _
            .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) + 1
            .Cells(LoLetzte, 1) = Environ("username")
            .Cells(LoLetzte, 2) = Now
        End With
        ThisWorkbook.Save
    End Sub
  5. Speichere die Datei als Makro-aktivierte Arbeitsmappe (*.xlsm).

  6. Schließe den VBA-Editor und teste die Datei, indem du sie öffnest. Die Informationen zum Benutzer und zum Zeitpunkt werden im Blatt "Zugriff" eingetragen.


Häufige Fehler und Lösungen

  • Makros deaktiviert: Wenn der Benutzer Makros deaktiviert hat, wird das Protokoll nicht funktionieren. Stelle sicher, dass die Makros aktiviert sind.
  • Blatt "Zugriff" nicht sichtbar: Wenn du das Blatt versteckt hast, kannst du die Information trotzdem erfassen. Achte darauf, dass der Code auch im Hintergrund funktioniert.
  • Datei wird nicht gespeichert: Um sicherzustellen, dass die Daten gespeichert werden, füge die Zeile ThisWorkbook.Save am Ende des Codes hinzu, wie im obigen Beispiel.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch:

  • Excel-Add-Ins verwenden, die die Zugriffe protokollieren.
  • Drittanbieter-Software nutzen, die Zugriffsprotokolle für Excel-Dateien bereitstellt.

Diese Methoden bieten möglicherweise eine benutzerfreundlichere Oberfläche, erfordern aber oft zusätzliche Kosten.


Praktische Beispiele

Stell dir vor, du hast eine Excel-Datei, die von mehreren Mitarbeitern genutzt wird, und du möchtest wissen, wer die Datei geöffnet hat und wie oft. Mit dem obigen VBA-Skript kannst du automatisch eine Liste im Blatt "Zugriff" erstellen, die alle Benutzer und Zeitstempel enthält.

Das kann besonders nützlich sein, wenn die Excel-Datei geöffnet, aber nicht sichtbar ist, da du trotzdem die Zugriffe nachverfolgen kannst.


Tipps für Profis

  • Überlege, die Protokollierung zu erweitern, um zusätzliche Informationen zu erfassen, wie z.B. die IP-Adresse des Benutzers oder den Computername.
  • Arbeite mit verschiedenen Blättern und blende sie aus, um die Benutzeroberfläche zu sichern. Dies kann helfen, wenn du wissen möchtest, wer eine Datei zuletzt geöffnet hat.
  • Verwende diese Technik regelmäßig, um Muster im Zugriff zu erkennen und um die Nutzung der Excel-Datei besser zu verstehen.

FAQ: Häufige Fragen

1. Kann man sehen, wer eine Datei zuletzt geöffnet hat?
Ja, indem du das oben genannte VBA-Skript verwendest, kannst du die Benutzer und Zeitstempel der Zugriffe aufzeichnen.

2. Was passiert, wenn die Excel-Datei geöffnet, aber nicht gespeichert wird?
Die Informationen werden dennoch im Protokoll gespeichert, da das Skript beim Öffnen der Datei ausgeführt wird, bevor die Datei geschlossen wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige