Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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

Save as verhindern bei Datumskonflikt

Save as verhindern bei Datumskonflikt
Dietmar
Hallo in die Runde,
habe eine knifflige und wie ich meine interessate Sache:
Ich habe ein kleines Programm geschrieben, das ich einigen Leutchen zur Verfügung stelle. Dieses erhält auch Updates, um inhaltliche Änderungen zu übertragen. Updates suchen die Datei (hier: test123.xls) immer an der gleichen Stelle, nämlich in C:\OrdnerXY.
Dorthin erfolgt daher bei jedem Öffnen der Datei eine sofortige Speicherung. Dafür habe ich ein "Application.Run Speichern" erstellt, das auch ohne Nachfrage ausgeführt wird.
Meine Frage:
Wie könnte ich den Code verfeinern, so dass die aktuell zu öffnende test123-Datei nur dann in die Speicherroutine kommt, wenn diese ein älteres Änderungsdatum aufweist als die Datei, die zu diesem Zeitpunkt an dem vorgegebenen Ort gespeichert ist?
Grund: Die Datei wird von dem einen oder anderen per Explorer auf einen Stick gezogen und abgelegt. Dann wird aber mit der Originaldatei (C:\OrdnerXY\test123.xls) weitergearbeitet, so dass die "Stickdatei" sofort veraltet ist. Es soll nicht möglich sein, eine die Stick-Dateiversion zu öffnen, die ein jüngeres Änderungsdatum aufweist, weil die an dem vorgesehenen Speicherort befindliche Datei, diese dann überschreiben würde. Dann soll eine msgbox mit YesNo erscheinen, die auf den Konflikt hinweist.
Ich bin gespannt. Vorab vielen Dank!
Dietmar aus Aachen
Hier mein Code:
Option Explicit

Private Sub Workbook_Open()
Application.ScreenUpdating = False
If Dir("C:\OrdnerXY", vbDirectory) = "" Then
MkDir ("C:\ OrdnerXY ")
MsgBox "Der OrdnerXY e wurde angelegt", vbInformation, "Hinweis"
Else
'MsgBox "Hinweis:" & vbCrLf & "" & vbCrLf & "Der Ordner C:\OrdnerXY für die Speicherung der  _
Datei ist vorhanden." & vbCrLf & "" & vbCrLf & "Bitte verändern Sie den genannten Pfad nicht(!), da Updates sonst nicht funktionieren.", vbExclamation, "Hinweis"
Dim inttab As Integer                       'Passwort auf allen Seiten aktivieren
For inttab = 1 To Worksheets.Count
Sheets(inttab).Protect ("12345678")
Next inttab
Worksheets("Eingangsseite").Activate        'Die Eingangsseite aufrufen
'Das Programm in den vorgesehenen Pfad speichern
Application.Run "Speichern"
Application.Run "SpeichernUnterNein" 'Zugriff auf Speichern unter verhindern
Application.ScreenUpdating = True
End Sub

Option Explicit

Sub Speichern()
If Dir("C:\OrdnerXY\test123.xls", vbDirectory) = "" Then
MsgBox "Die Datei wurde wie folgt gespeichert: C:\OrdnerXY\test123" & vbCrLf & "viel Spass",  _
vbInformation, "Hinweis"
Else
End If
Application.DisplayAlerts = False   'Nachfrage ausschalten, damit Zwangsspeicherung erfolgen  _
kann
ActiveWorkbook.SaveAs Filename:="C:\OrdnerXY\test123.xls"
Application.DisplayAlerts = True    'Nachfrage einschalten
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Save as verhindern bei Datumskonflikt
29.01.2010 14:11:08
Michael
Hallo,
weiß nicht ob hilft? Du kannst das Änderungsdatum einer Datei mit Excel abfragen.
Dim objFSO As Object
Dim objFile, objFileHR As Object
.
.
.
PFAD = "C:\OrdnerXY"
Set objFSO = CreateObject("Scripting.FileSystemObject") 'Explorer abfrage
Set objFile = objFSO.GetFile(PFAD & "\test123.xls")
aendDatumakt = objFile.datelastmodified 'Änderungsdatum
.
.
.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige