Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Letzten Benutzer Speichern und auslesen

Letzten Benutzer Speichern und auslesen
04.08.2022 11:22:15
Geheimratsecki
Hallo zusammen,
ich habe hier im Archiv folgendes gefunden:
https://www.herber.de/forum/archiv/1676to1680/1679234_Letzter_Benutzer_der_Datei_speichern.html

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

Private Sub Workbook_Open()
If Environ("Username")  "Eckstein" Then
Sheets("Nutzer-Protokoll").Visible = xlVeryHidden
Else
Sheets("Nutzer-Protokoll").Visible = True
End If
End Sub

Habe zwei Fragen:
1. Wie kann ich mehrere User zum Anzeigen des Protokolls in den VBA-Code eintragen?
2. Möchte diese Funktion gleichzeitig mit dem Code
Function Speicherdatum()
Speicherdatum = ThisWorkbook.BuiltinDocumentProperties("last save time") & (" von ") & Application.UserName
End Function

laufen lassen, aber dieser versagt seine Funktion, sobald ich das andere Makro integriere.
Keine Fehlermeldung aber auch keine Aktualisierung.
Vielen Dank im Voraus.
LG Ecki

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 12:00:08
Rudi
Hallo,

Private Sub Workbook_Open()
Select Case LCase(Environ("Username"))
Case "eckstein", "mueller", "weber"
Sheets("Nutzer-Protokoll").Visible = True
Case Else
Sheets("Nutzer-Protokoll").Visible = xlSheetVeryHidden
End Select
End Sub
wozu die Ein-/ Ausblenderei im before_save?
Gruß
Rudi
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 13:19:53
Geheimratsecki
Hallo Rudi,
vielen Dank für die schnelle Antwort. :)
Das Ein-/Ausblenden war schon im Code drin. Fand ich auch nicht schlecht, so können andere User die Eintragungen nicht manipulieren.
Es könnte auch ständig eingeblendet sein, wenn man ein manuelles Löschen von nicht Autorisierten Personen verhindern kann.
Deswegen ja auch die 2. Frage. Sodass jeder sieht, wer als letzter an an der Datei war.
Welche ja aber in Verbindung mit dem Protokoll nicht klappt. Beim Autospeichern hingegen schon, wie ich gerade gesehen habe.
Jedenfalls hatte meine Datei einen neuen Eintrag in der Zelle =Speicherdatum() während ich Pause hatte.
Aber das Protokoll dagegen hatte keinen Eintrag.
Grüße
Ecki
Anzeige
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 14:17:27
onur
"dieser versagt seine Funktion, sobald ich das andere Makro integriere" - Wenn du nicht verrätst, WIE UND WO das integrierst, kann doch keiner wissen, was der Fehler ist - oder ?
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 14:27:02
Geheimratsecki
Hallo zusammen,
muss man hier in diesem Forum immer die Original-Anfrage wieder mit reinkopieren?
Da stand doch m.E. alles drin!?
Hallo zusammen,
ich habe hier im Archiv folgendes gefunden:
https://www.herber.de/forum/archiv/1676to1680/1679234_Letzter_Benutzer_der_Datei_speichern.html

   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
Private Sub Workbook_Open()
If Environ("Username")  "Eckstein" Then
Sheets("Nutzer-Protokoll").Visible = xlVeryHidden
Else
Sheets("Nutzer-Protokoll").Visible = True
End If
End Sub
Habe zwei Fragen:
1. Wie kann ich mehrere User zum Anzeigen des Protokolls in den VBA-Code eintragen?
2. Möchte diese Funktion gleichzeitig mit dem Code

Function Speicherdatum()
Speicherdatum = ThisWorkbook.BuiltinDocumentProperties("last save time") & (" von ") & Application.UserName
End Function

=Speicherdatum()
laufen lassen, aber dieser versagt seine Funktion, sobald ich das andere Makro integriere.
Keine Fehlermeldung aber auch keine Aktualisierung.

Grüße
Ecki
Anzeige
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 14:32:29
onur
Rede ich denn mit der Wand? WIE genau hast du die Funktion in den Code INTEGRIERT ?
Ausserdem: WO genau stehr der Code der Function?
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 14:41:44
Geheimratsecki
Hallo onur,
nein, mit mir, einem Laien. ;)
Userbild
Die Formel kann überall stehen. sie hat auch funktioniert, bis ich das andere Makro in dieselbe Datei integriert habe.
Die Funktion steht in allgemein
Das Makro in Workbook
Grüße
Ecki
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 14:52:21
onur
Ich glaube, ich verstehe langsam, was du erwartest: Dass, sobald die Datei gespeichert wurde, die Funktion sich selber "aufruft" und das Datum aktualisiert, aber so funktioniert Excel nicht. Du musst schon die Neuberechnung der Datei anstossen, nachdem die Datei gespeichert wurde.
Die Function sollte PUBLIC sein:

Public Function Speicherdatum()
Speicherdatum = ThisWorkbook.BuiltinDocumentProperties("last save time") & (" von ") & Application.UserName
End Function
Und in das Modul des Workbook (wo auch Workbook_Open steht)

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Application.Calculate
End Sub

Anzeige
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 15:04:34
Geheimratsecki
Hallo onur,
das funktioniert leider nicht.
1. kommt nach dem speichern ja dann nochmal die Meldung Speichern, wenn die Datei geschlossen wird.
2. wird die Zelle trotzdem nicht aktualisiert.
Müssen die Codes eine bestimmte Reihenfolge im VBA haben?
Grüße
Ecki
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 15:05:45
onur
Poste doch mal die Datei.
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 15:31:12
onur
Wie gesagt: Als würde man mit der Wand reden....
Funktioniert doch, WENN man meinen Code in Workbook_AfterSave einfügt !
Siehe hier:
https://www.herber.de/bbs/user/154508.xlsm
Anzeige
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 16:27:37
Geheimratsecki
Aber leider nicht immer!
Oder besser gesagt, nur sporadisch! :(
Hab deine Datei jetzt mehrfach geöffnet, geschlossen, gespeichert...
Das Protokoll füllt sich, aber auf dem Arbeitsblatt wird nicht immer, die letzte Speicherzeit eingetragen.
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 16:56:39
Daniel
Hi
richtig.
das Problem ist, Formeln in einer Excelzelle werden nur dann neu berechnet bzw aktualisiert, wenn sich ein Wert einer Zelle, auf die die Formel referenziert, ändert.
Formeln wie diese ohne Referenz auf andere Zellen behalten daher immer ihren Wert, den sie beim Erstellen der Formel hatten, solange bis du mal in die Zelle reinklickst und die Formel quasi neu eingibst.
eine verbesserung der Situation kannst du bekommen, wenn du dem Code der Formel die Zeile
Application.Volatile
hinzufügst. Dann wird diese Formel aktualisiert, wenn du irgendeinen Zellwert änderst sowie beim Öffnen der Datei (aber nicht beim Speichern)
am sinnvollsten ist wahrscheinlich, wenn du die Information, wer die Liste zuletzt wann gespeichert hast, nicht per Formel in einer Zelle ausgibst, sondern im BeforeSave-Event hart in die Zelle schreibst, so wie du es im Protokoll auch machst.
Gruß Daniel
Anzeige
AW: Letzten Benutzer Speichern und auslesen
04.08.2022 17:05:38
onur
Sorry, hast Recht.
Ändere die Function wie folgt:

Public Function Speicherdatum()
Application.Volatile
Speicherdatum = ThisWorkbook.BuiltinDocumentProperties("last save time") & (" von ") & Application.UserName
End Function
UND ändere die Formel der Zelle(n) auf

=Speicherdatum() & ""
dann klappt es.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige