gibt es eine Moeglichkeit in einem bestimmten Verzeichnis die "juengste" Datei zu finden und zu oeffnen? Also die Datei, die im Explorer beim Sortieren nach Datum ganz oben steht. Der Dateiname soll dabei keine Rolle spielen.
Gruss Volker
gibt es eine Moeglichkeit in einem bestimmten Verzeichnis die "juengste" Datei zu finden und zu oeffnen? Also die Datei, die im Explorer beim Sortieren nach Datum ganz oben steht. Der Dateiname soll dabei keine Rolle spielen.
Gruss Volker
Sub LetztesSpeicherungsdatumAbfragen()
MsgBox "Das letzte Änderungsdatum der Arbeitsmappe war am: " & _
ThisWorkbook.BuiltinDocumentProperties("Last save Time").Value
End Sub
vieIIeicht Iässtes sich ja etwas umbauen für aIIe dateitypen
andreas e
Gruss Rainer
Danke, aber das Makro bleibt stehen mit "Laufzeitfehler 53 - Datei nicht gefunden". Markiert wird die Zeile:
If Format(FileDateTime(strDateiname), "dd.mm.yyyy") > StoreDate Then
Gruss Volker
hier mal der Ansatz zum finden der neuasten Datei, das öffnen mußt Du noch einbauen.
Gruß Hajo
mal wieder vielen Dank an Dich!
Gruss Volker
aber die obige Loesung von Hajo war mehr das, was ich suchte.
gruss Volker
vermutlich stimmt deine Pfadangabe und/oder Dateierweiterung nicht.
Das Makro habe ich mehrfach getestet.
Gruss Rainer
in der geposteten Version laeuft es definitiv nicht (weder unter Excel 97 noch Excel 2000)!
Wenn ich jedoch (in Anlehnung an Hajos-Loesung)
If Format(FileDateTime(strDateiname), "dd.mm.yyyy") > StoreDate Then
durch
If Format(FileDateTime(Path & "\" & strDateiname), "dd.mm.yyyy") > StoreDate Then
und
StoreDate = Format(FileDateTime(strDateiname), "dd.mm.yyyy")
durch
StoreDate = Format(FileDateTime(Path & "\" & strDateiname), "dd.mm.yyyy")
ersetzte, laeuft es.
Ausserdem fehlt die Abfrage, ob Path vorhanden. Es gibt naemlich kein GoTo Error_SuchVZ.
Wenn ein nicht vorhandenes Verzeichnis abgeben wird, greift (weil i=0) Dein:
If i = 0 Then
MsgBox "Keine Dateien dieses Typs " & DEW & " gefunden"
Exit Sub
End If
Hat sich da beim Posten vielleicht ein Fehler eingeschlichen?
Trotzdem vielen Dank fuer Deine Muehe!
Schoenen Sonntagabend!
Volker
Das mit der fehlenden On_Error_Anweisung ist tatsächlich beim kopieren passiert.
Sorry, allerdings tut es nichts zur Sache.
Der Rest ist allerdings unverständlich. Getestet mit E97, E2000 und EXP, allerdings BS WindowsXP. Ob das einen Einfluss hat ?
So wie du es gelöst hast kann es eigentlich erst recht nicht funktionieren, weil drei Zeilen oberhalb im Code die Variable strDateiname aus dem Pfad und der Dateierweiterung zusammengesetzt wird.
strDateiname = Dir(Path & "\" & DEW)
Mit deiner Lösung
StoreDate = Format(FileDateTime(Path & "\" & strDateiname), "dd.mm.yyyy")
würde die Variable strDateiname übersetzt lauten:
StoreDate = Format(FileDateTime("C:\C:\*.xls"), "dd.mm.yyyy")
... und das dies funktioniert,... kann ich eigentlich nicht glauben.
Als Dateierweiterung würde auch nur "xls" reichen und das ganze läuft auch ohne Formatanweisung. Der Wechsel in das Laufwerk oder in das Verzeichnis ist nicht nötig, da, wie du bereits bemerkt hast, das ganze über i aufgefangen wird.
Dieses Segment mit dem Pfad kann nicht fehlerhaft sein, weil Hajo die identische Abfrage hat und auch keinen Wechsel des Laufwerks oder in das Verzeichnis hat.
Gruss Rainer
sorry, aber mein VBA und ich sind der Meinung, dass Zitat:
"... die Variable strDateiname aus dem Pfad und der Dateierweiterung zusammengesetzt wird.
strDateiname = Dir(Path & "\" & DEW) ..."
nicht stimmt.
"Dir" liefert nur einen Dateinamen in(!) einem Verzeichnis, aber keine Pfadangabe. Habe Deine Variable "strDateiname" im Einzelschritt geprueft.
Auch Hajo benutzt Pfad und Dateiname:
FileDateTime(strVerzeichnis & Dateiname)
Gruss Volker
ich muß jetzt auch mal einen Kommentar dazu schreiben. Mein Makro und das Makro von Ramses (wenn ich Path = "D:\Eigene Dateien\Hajo\" schreibe )liefern das gleiche Ergebnis.
Getestet unter BS XP und Excelversion XP und ich glaube Rainer schon das er sein Makro getestet hat. Ich würde so umfangreichen Code auch nicht ungetestet ins Forum stellen.
Gruß Hajo
Es liegt mir absolut fern, jemanden zu kritisieren; Ihr helft schliesslich mir. Nur wenn ich den Code von Rainer, so wie er ist, in ein Modul kopiere, funktioniert er nicht, weil die Variable "strDateiname" nur den Dateinamen und nicht die Pfadangabe liefert.
Bitte, auch fuer mich ist es selbstverstaendlich, erst zu schreiben, wenn ich getestet habe (Excel 97 und Excel 2000, jeweils unter Windows 98).
Hajo, Du benutzt - wie schon geschrieben - bei FileDateTime(strVerzeichnis & Dateiname) Pfad und(!) Dateiname, Rainer nicht. Oder was uebersehe ich?
Gruss Volker
... bei mir läuft es einwandfrei unter allen drei Versionen.
Aber du hast ja deine Lösung, also lassen wir es dabei :-)
Ein schönen Sonntag noch.
Gruss Rainer
es ist immer recht aufwendig fremden Code nochzuvollziehen. Da jeder ein anderen Programmierstil hat
bei Rainer
Path = "D:\Eigene Dateien\Hajo"
'Dateierweiterung
DEW = "*.xls"
i = 0
strDateiname = Dir(Path & "\" & DEW)
bei mir
strVerzeichnis = "D:\Eigene Dateien\Hajo\"
StrTyp = "*.xls"
Dateiname = Dir(strVerzeichnis & StrTyp)
da sehe ich aber den gleichen Aufbau. Im Original von Rainer stand nur C: ich habe dies nur um den Phad ergänzt. Rainer hat nur im Verzeichnis C: gesucht und ich eben in D:\Eigene Dateien\Hajo.
Gruß Hajo
der Unterschied liegt doch an einer anderen Stelle (habe mich bisher wohl nicht praezise genug ausgedrueckt):
Rainer: FileDateTime(strDateiname)
Hajo: FileDateTime(strVerzeichnis & Dateiname)
und genau hier meckert Excel.
Gruss Volker
ich habe festgestellt. Der Phad braucht nicht angegeben werden, wenn es der Standardspeicherort ist.
Bei meiner Test war er es immer dieser Phad, darum lief es wohl Fehlerfrei.
Gruß Hajo
Hier hat offensichtlich EXCEL ein gewaltiges Problem.
Ich habe das nochmal auf das Laufwerk "C:", das war im Code ja nur ein Beispiel, getestet.
Dann erhalte ich genau den gleichen Fehler, allerdings nur !!! wenn keine Datei mit der gesuchten Endung im Rootverzeichnis ist, .. wenn eine Datei dort ist funktioniert es.
Wenn ich das gleiche auf einen Pfad mache "C:\Test" und dort ebenfalls keine Dateien drin stehen habe, funktioniert der Code und ich erhalte die vorgesehene Meldung "Keine Dateien dieses Typs gefunden" !!??
Es geht hier offensichtlich nicht wenn das Rootverzeichnis ohne diesen Dateityp durchsucht wird.
Der gleiche Effekt tritt übrigens bei Hajo's Code an der gleichen Stelle auf mit der gleichen Fehlermeldung ;-)
Volker:
Die Anweisung Dir() erwartet eine Pfadangabe und einen Dateinamen, ob dieser zusammengesetzt wird wie bei Hajo oder als einzelnes übergeben wie bei mir.
Ein solches Beispiel findest du auch, wenn du in der VBA-Hilfe unter DIR suchst und dir dort das Beispiel anzeigen lässt
Gruss Rainer
mein Code ist doch nicht ganz fehlerfrei.
Weil ich die Variable StoreDate beim Eintritt in die Schleife nicht gefüllt habe, zeigt er mir das falsche Datum zur richtigen Datei an :-((
Richtig müsste es also, wie bei Hajo ;-)), lauten
StoreDate = FileDateTime(strDateiname)
Do While....
Sorry für den Lapsus.
Gruss Rainer