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

Forumthread: Beim Speichern Datum und Benutzer eintragen

Beim Speichern Datum und Benutzer eintragen
24.04.2008 13:52:00
Andre
Hallo!
Ich hoffe wieder einmal auf Hilfe. :)
Ich möchte gerne, dass wenn meine Excel-Tabelle geändert und gespeichert wird, dass automatisch in die Tabelle (irgendwo) Aktuelles Datum und Zeit gespeichert werden. Wenn geht auch noch durch wen das geändert wurde, also der angemeldete Nutzer am Computer. Ist das irgendwie möglich?
Das mit dem Datum und dem Nutzer könnte ja schon eingetragen werden, sobald jemand etwas an der Tabelle ändert. Es wird dann ja mitgespeichert. Geht das überhaupt?
Falls das nur mit VBA geht und jemand einen Code dafür hat, werde ich mich mal daran versuchen, habe ich noch nicht gemacht. :)
Danke!
Andre

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beim Speichern Datum und Benutzer eintragen
24.04.2008 14:21:00
selli
hallo andre,
lege ein tabellenblatt "Logs" an und diesen code in "DieseArbeitsmappe" einbinden

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim iRow As Integer
With Worksheets("Logs")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(iRow, 1).Value = Application.UserName
.Cells(iRow, 2).Value = Now
.Columns.AutoFit
End With
End Sub


gruß selli

Anzeige
AW: Beim Speichern Datum und Benutzer eintragen
24.04.2008 14:30:59
Andre
Super, danke!
Hab mal .Columns.AutoFit rausgenommen, das hat mir meine Formatierung immer wieder verhauen.
Also nochmal danke, hab noch nie den VB Editor aufgemacht vorher. :)

Doch noch ein Problem 'Blattschutz'
24.04.2008 14:37:25
Andre
Ich würde gerne das Blatt 'Logs' schützen, damit man die Logs nicht verändern kann. Das kann ich, nur funktioniert dann natürlich der VBA-Code nicht mehr. ;)
Gibt es da eine Lösung für? Steht das Passwort dann im VBA-Code? Kann das Passwort dann jeder im Code sehen? Oder geht das überhaupt nicht?

Anzeige
AW: Doch noch ein Problem 'Blattschutz'
24.04.2008 14:50:00
Rudi
Hallo,

Steht das Passwort dann im VBA-Code?


Ja.


Kann das Passwort dann jeder im Code sehen?


Extras-Eigenschaften von...-Schutz-Projekt für Anzeige sperren und PW vergeben.
Wirkt beim nächste Öffnen. Ist aber nicht 100% sicher. Im Normalfall reicht's aber.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Doch noch ein Problem 'Blattschutz'
24.04.2008 15:09:16
Andre
Da muss ich ehrlich zugeben: habe ich nicht kapiert... :D
Leider kenn ich mich mit VB usw. nicht so gut aus.
Eigentlich kann es ja nicht funktionieren... Ich will ja nur das eine Blatt schützen, aber die Sichtbarkeit des Passwortes im VB-Editor unterdrücken. Das geht ja wahrscheinlich nur, wenn ich die ganze Tabelle schütze, oder?

Anzeige
Dokumentiertes Beispiel anbei
24.04.2008 21:42:05
Bernd
Hi Andre,
nachstehend ein Beispiel mit (hoffentlich) ausreichender Beschreibung und ein paar Bildchen fürs bessere Verständnis.
Alle Änderungen auf allen Tabellenblättern der Datei werden in einem Blatt "Änderungen dokumentieren" dokumentiert.
https://www.herber.de/bbs/user/51846.xls
Grüße
Bernd
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum und Benutzer beim Speichern in Excel eintragen


Schritt-für-Schritt-Anleitung

Um automatisch das aktuelle Datum und den Namen des Benutzers in einer Excel-Tabelle zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser wird beim Speichern der Arbeitsmappe ausgeführt.

  1. Öffne Deine Excel-Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Doppelklicke auf "DieseArbeitsmappe" im Projekt-Explorer auf der linken Seite.
  4. Füge den folgenden Code in das Fenster ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim iRow As Integer
    With Worksheets("Logs")
        iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Cells(iRow, 1).Value = Application.UserName  ' Benutzername eintragen
        .Cells(iRow, 2).Value = Now                    ' Aktuelles Datum eintragen
        .Columns.AutoFit                               ' Spaltenbreite anpassen
    End With
End Sub
  1. Schließe den VBA-Editor und speichere Deine Datei als Excel-Arbeitsmappe mit Makros (Dateiendung .xlsm).

Jetzt wird beim Speichern der Datei der Benutzername und das aktuelle Datum in das Tabellenblatt "Logs" eingetragen.


Häufige Fehler und Lösungen

  • Fehler: "Blatt ist geschützt" Wenn Du das Blatt "Logs" schützt, funktioniert der VBA-Code nicht mehr. Du kannst das Blatt schützen, aber stelle sicher, dass der VBA-Code im Schutz nicht beeinträchtigt wird.

  • Lösung: Passwort im VBA-Code Das Passwort wird im VBA-Code sichtbar sein. Du kannst den Schutz des Projekts aktivieren, um es zu verstecken:

    1. Klicke im VBA-Editor auf "Extras" -> "Eigenschaften von [Dein Projekt]" -> "Schutz".
    2. Aktiviere "Projekt für die Anzeige sperren" und lege ein Passwort fest.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch manuell das Datum und den Benutzer in die Zellen einfügen:

  1. Verwende die Funktion =JETZT() für das aktuelle Datum.
  2. Nutze =BENUTZER() (in Excel 365) für den Benutzernamen.

Diese Methoden sind jedoch nicht automatisiert und erfordern manuelles Eingreifen.


Praktische Beispiele

Ein Beispiel für die Verwendung des Codes könnte so aussehen:

  1. Du hast ein Tabellenblatt "Logs", das die folgende Struktur hat:
    • Spalte A: Benutzername
    • Spalte B: Datum und Uhrzeit der Änderung
  2. Jedes Mal, wenn Du die Arbeitsmappe speicherst, wird ein neuer Eintrag hinzugefügt, sodass Du immer nachvollziehen kannst, wer Änderungen vorgenommen hat. Dies ist besonders hilfreich, um den letzten Bearbeiter in der Zelle anzuzeigen.

Tipps für Profis

  • Automatisierung: Überlege, ob Du weitere Informationen wie die Art der Änderung (z.B. welche Zellen aktualisiert wurden) hinzufügen möchtest.
  • Datenanalyse: Nutze die Daten im "Logs"-Blatt, um Muster im Nutzerverhalten zu erkennen.
  • Sicherheit: Schütze das VBA-Projekt mit einem starken Passwort, um unbefugten Zugriff zu verhindern.

FAQ: Häufige Fragen

1. Kann ich das Datum beim Speichern in einer bestimmten Zelle eintragen? Ja, Du kannst den Code anpassen, um das Datum in einer bestimmten Zelle anstatt in der nächsten freien Zeile einzutragen.

2. Wie kann ich den letzten Bearbeiter in einer Zelle anzeigen? Du kannst die Informationen im "Logs"-Blatt verwenden, um den letzten Bearbeiter anzuzeigen, indem Du die letzte Zeile mit =INDEX(Logs!A:A;MAX(ROW(Logs!A:A)* (Logs!A:A<>""))) abfragst.

3. Funktioniert dieser Code in Excel 2016? Ja, der VBA-Code funktioniert in Excel-Versionen, die Makros unterstützen, einschließlich Excel 2016.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige