Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1648to1652
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

Liste von Bearbeitern mit Datum beim Speichern

Liste von Bearbeitern mit Datum beim Speichern
15.10.2018 11:14:54
Bearbeitern
Guten Morgen, liebe Excel-Fans!
Trotz guter Excel-Kenntnisse und dem Wissen, wie man mit Google und Co. umgeht, bin ich mit meinem Latein am Ende.
Ich habe bereits diverse Möglichkeiten gefunden, den Nutzer, der eine Excel-Datei zuletzt bearbeitet oder zuletzt gespeichert hat, mit Namen, Datum und Uhrzeit in einer Zelle wiederzugeben.
Jetzt kommt das Sahnetüpfelchen obendrauf, dass ich hoffentlich mit euch gebacken bekomme. (Ob als Funktion oder als VBA-Code ist mir egal - so, wie ihr es mir liefert, werde ich es schon angepasst bekommen - notfalls hake ich nach)
Ich habe ein Planungstool erstellt.
Auf einem der Blätter ist eine Liste der Bearbeiter in den Zellen D1-D5. (alle anderen in der Firma haben keine Passwort und können die Datei nur schreibgeschützt zum Lesen öffnen.)
In den Zellen E1-E5 soll ausgegeben werden, wann der jeweilige Bearbeiter, die Datei zuletzt (bearbeitet und) gespeichert hat. (kurze Info zum Sinn: Da jeder der 5 möglichen Bearbeiter verschiedene Bereiche innerhalb des Tools zu füllen und möglichst auf dem aktuellen Stand zu halten hat, möchten wir sehen, wie aktuell eben "seine" Daten/seine Eingaben sind.)
Meine Probleme bisher:
1. Ich bekomme es nicht hin, dass nur das Datum bei dem, der gespeichert hat, verändert wird.
2. Ich bekomme keine VBA-Programmierung derart hin
WENN Benutzer 1 (in Zelle D1) speichert, DANN setze heutiges Datum nur in Zelle neben Namen von Benutzer 1 (= E1)!
WENN Benutzer 2 (in Zelle D2) speichert, DANN setze heutiges Datum nur in Zelle neben Namen von Benutzer 2 (= E2)!
...
WENN Benutzer 5 (in Zelle D5) speichert, DANN setze heutiges Datum nur in Zelle neben Namen von Benutzer 5 (= E5)!
Eine IF...THEN Prüfung liegt nahe, oder? Aber bedenkt: Bei der Prüfung darf das jeweilige Datum bei den anderen 4 nicht verändert oder gar gelöscht werden.
Egal wie hilfreich eure Antworten sind und ob das Problem final gelöst werden kann: Ich danke bereits im Voraus jedem ernsthaft Hilfswilligen, der sein Gehirnschmalz für mich einsetzt!!!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste von Bearbeitern mit Datum beim Speichern
15.10.2018 14:07:50
Bearbeitern
Hallo,
wie werden die Benutzer denn identifiziert? WIN-Anmeldung?
for each r in Range("D1:D5")
if lcase(r)=lcase(environ("username")) then r.offset(,1)=date
next r
Gruß
Rudi
AW: Liste von Bearbeitern mit Datum beim Speichern
15.10.2018 14:24:07
Bearbeitern
Wie die Benutzer identifiziert werden, ist für mich schwer zu sagen.
Für die Windows-Anmeldung lautet der Zugang Nachname + 1. Buchstabe des Vornamen. Also z. B. "MusterM" für Max Muster.
In den Office-Anwendungen steht dann, z. B. bei "zuletzt geändert von", der volle Name. Also dann wieder "Max Muster".
AW: Liste von Bearbeitern mit Datum beim Speichern
15.10.2018 17:07:03
Bearbeitern
Hallo Nikki,
das bedeutet, dass du den Windows-Anmeldenamen nicht verwenden kannst, sondern du musst in die Liste die Namen aller Benutzer in der "Zweiwort-Version" eintragen. Dann kannst du diesen mit dem "Usernamen" vergleichen und, bei Übereinstimmung, das Datum eintragen. Alles klar?
Servus
Anzeige
AW: Liste von Bearbeitern mit Datum beim Speichern
15.10.2018 17:16:40
Bearbeitern
Mit der Hilfe von Rudi und dem zusätzlichenanpassen mit einigen anderen artverwandten Code-Zeilen funktioniert es nun:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For Each r In Range("D1:D5")
If LCase(r) = LCase(Environ("username")) Then r.Offset(, 1) = Date
Next r
End Sub
Zur Funktionsweise:
EXCEL sucht im Bereich D1 bis D5 den, der die Arbeitsmappe gerade speichert, und gibt eine Zelle weiter rechts (durch ".Offset(, 1") das Speicherdatum wieder.
"username" fragt nach dem Anmeldenamen für Windows. Bei uns ist das "MusterM" (siehe oben). Da EXCEL bei "zuletzt gespeichert von" "Max Muster" anzeigt, dachte ich, könnte es mit "Application.username" irgendwie umfunktionieren, weil das einfach schöner in der Tabelle aussehen würde. Habe ich aber nicht geschafft.
Zur Funktion ".Offset(x,y)": x gibt die Anzahl der Zellen an, die nach unten verschoben der Wert wiedergegeben werden soll; y für die Verschiebung nach rechts. Mit negativen Werten wird nach oben bzw. nach links verschoben; wird kein Wert oder 0 angegeben, dann ist die Verschiebung 0.
Anzeige
AW: Liste von Bearbeitern mit Datum beim Speichern
15.10.2018 19:48:19
Bearbeitern
Hallo Nikki,
z.B. so:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim raFund As Range
With Worksheets("Tabelle1") 'Blattname anpassen
Set raFund = .Columns(4).Find(what:=Application.UserName, LookIn:=xlValues, lookAt:=xlWhole) _
If Not raFund Is Nothing Then
raFund.Offset(, 1) = Date
Else
MsgBox "Keine Berechtigung."
Cancel = True
End If
End With
End Sub
Gruß Werner

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige