Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Speicherdatum einer geschlossenen Datei mit aktuellem Speicherdatum vergleichen
#1
Hallo Excelperten,

ich habe eine Datei A, die auf dem Laufwerk a gespeichert ist (a:\A)

In dieser Datei werden von einem Bearbeiter Änderungen durchgeführt und abgespeichert.

Die Datei wird einmal täglich auf ein anderes Laufwerk gespiegelt (nach b:\B'), wo sie von vielen Usern eingesehen werden kann.

Da der Spiegelungsprozess bisweilen nicht funktioniert, möchte ich diesen Prozess kontrollieren.

Dies soll so erfolgen, dass in a:\A ein VBA-Kode hinterlegt wird, der das Datum der letzten Speicherung von b:\B' ausliest und mit dem aktuellen Speicherdatum von a:\A vergleicht. Sofern die Differenz größer ist als 2 Tage, soll die Warnmeldung "Achtung, Spiegelungsprozess überprüfen!" erscheinen. Der Bearbeiter kann das dann veranlassen.

Da ich blutiger VBA-Änfänger bin, komme ich nicht weiter:

Sub Speicherkontrolle ()
Dim Speicherdatum as Double
Speicherdatum= FileDateTime("b:\B")    ' Liefert Speicherdatum von b:\B

if Speicherdatum+2 < ActiveWorkbook.BuiltinDocumentProperties(12).Value then
MsgBox "Achtung, Spiegelprozess überprüfen!"

End if

End Sub

Was muss ich ändern? Wo muss ich das reinstellen?

Vielen Dank

Excelbeginner
Antwortento top
#2
Moin!
Ich sehe da keinen offensichtlichen Fehler.
Selbstverständlich gehört aber die Dateierweiterung zur Abfrage:
Also B:\B.xlsx oder B:\B.xlsm oder B:\B.xlsb

Außerdem musst Du die "Wertigkeit" der Operatoren + und < beachten und entsprechend klammern:
If (Speicherdatum + 2) < ActiveWorkbook.BuiltinDocumentProperties(12).Value Then

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Benutzer sagt Danke an RPP63 für diesen Beitrag:
  • Excelbeginner
Antwortento top
#3
Hallo Ralf,

vielen Dank, das hat mir sehr geholfen! 18

Es ergibt sich eine weitere Frage:

Zur Verfeinerung muss ich einen Zwischenwert (Datum mit Uhrzeit) mit VBA berechnen, diesen speichern und beim nächsten Aufruf der Datei auslesen.

Ich versuche das gerade mit

ActiveWorkbook.CustomDocumentProperties.Add Name:="Sp1_gespeichert"

Wo muss ich das hinterlegen?
Was muss ich da weiter angeben?

Wird der Wert mit ActiveWorkbook.CustomDocumentProperties("Sp1_gespeichert") aufgerufen?
Gibt es eine bessere Methoden?

Vielen Dank im Voraus

Excelbeginner
Antwortento top
#4
Hallo,

hat sich erledigt. Ich speichere den Werte in einem hidden sheet. Das ist einfacher.

Vielen Dank für das Mitdenken!

Excelbeginner
Antwortento top
#5
Moin!
Auch wenn Du eine andere Lösung gefunden hast, will ich Dir dennoch Deine Fragen beantworten.
Wenn ich etwas sehr versteckt speichern will, nehme ich dazu die CustomProperties-Eigenschaft des Worksheets.
Das hat den Vorteil, das dies nicht auf der Excel-Oberfläche auslesbar ist!

Du setzt sie einmalig mittels

Tabelle1.CustomProperties.Add "Sp1_gespeichert", Now

Wenn Du es per Makro machst, kannst Du es sofort wieder löschen.
Ich mache so etwas im Direktfenster.

Den Value dieser Eigenschaft kannst Du wie folgt überschreiben:

With Tabelle1
  .CustomProperties(.CustomProperties.Count).Value = Now
End With


Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste