Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
148to152
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
148to152
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Neueste Datei in Verzeichnis finden (2)

Neueste Datei in Verzeichnis finden (2)
18.08.2002 15:18:19
Volker Croll
Hallo zusammen,

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

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Neueste Datei in Verzeichnis finden (2)
18.08.2002 15:42:03
andreas e
hey ,
aIs Iösungsanstz maI das hier ,

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

Das geht so...
18.08.2002 15:56:29
Ramses
Hallo Volker,


Gruss Rainer

So geht's nicht ... :-(
18.08.2002 16:33:45
Volker Croll
Hallo 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

Anzeige
Re: Neueste Datei in Verzeichnis finden (2)
18.08.2002 16:47:22
Hajo_Zi
Hallo Volker

hier mal der Ansatz zum finden der neuasten Datei, das öffnen mußt Du noch einbauen.

Gruß Hajo

Funktioniert hervorragend!
18.08.2002 16:58:22
Volker Croll
Hallo Hajo,

mal wieder vielen Dank an Dich!

Gruss Volker

Auch Dir ein Dankeschoen ...
18.08.2002 17:10:49
Volker Croll
Hallo Andreas,

aber die obige Loesung von Hajo war mehr das, was ich suchte.

gruss Volker

Natürlich geht es...
18.08.2002 18:43:09
Ramses
Hallo,

vermutlich stimmt deine Pfadangabe und/oder Dateierweiterung nicht.
Das Makro habe ich mehrfach getestet.

Gruss Rainer

Es geht wirklich nicht ...
18.08.2002 19:03:07
Volker Croll
Hallo 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

Anzeige
Das kann erst recht nicht sein...
18.08.2002 19:32:21
Ramses
Hallo 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

Anzeige
... daran soll XP schuld sein ?
18.08.2002 20:09:17
Volker Croll
Hallo 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

Re: ... daran soll XP schuld sein ?
18.08.2002 20:31:59
Hajo_Zi
Hallo 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

Anzeige
Dann erklaert mir doch bitte, wo ich ...
18.08.2002 20:44:42
Volker Croll
... meinen Gedankenfehler mache.

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


Anzeige
Keine Ahnung...
18.08.2002 20:45:15
Ramses
Hallo 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

Re: Dann erklaert mir doch bitte, wo ich ...
18.08.2002 20:51:27
Hajo_Zi
Hallo Volker

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

Anzeige
Vielleicht laesst es sich doch noch klaeren ...
18.08.2002 20:59:56
Volker Croll
Hallo 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

Re: Vielleicht laesst es sich doch noch klaeren ...
18.08.2002 21:22:55
Hajo_Zi
Hallo 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

Eine Erklärung...
18.08.2002 21:25:24
Ramses
Hallo Volker, Hallo 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

Anzeige
Dann nochmals allen vielen Dank ! (oT)
18.08.2002 21:28:35
Volker Croll
.
Re: Eine Erklärung...
18.08.2002 21:31:58
.... und eine kleine Korrektur
Hallo zusammen,

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge