Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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
Dateiname "."
26.07.2021 11:34:34
Darius
Liebes Excel-Forum,
ich habe ein Problem mit einem VBA-Makro-Code, welches die jüngste Datei/Ordner in einem Ordner suchen soll. Wenn ich mein Makro starte sucht es mir den jüngsten Ordner gibt aber nicht den richtigen Dateiname/ Ordnername aus, sodern ".". Ich verstehe nicht warum, oder woher das kommt. Wenn ich noch Zusätze eingebe, wie z.B. soll enthalten "-21-" oder "Auswertung" funktioniert es einwandfrei. Nur ohne Beschränkung funktioniert es nicht ganz wie ich es will.
Anbei der Code:

Sub Neuster_Ordner()
Dim Speicherpfad As String
Dim Dateiname As String
Dim Dateiname_neu As String
Dim Zeit As Date
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Wo soll die aktuelle Datei gespeichert werden?"
.ButtonName = "Auswählen"
.Show
If .SelectedItems.Count > 0 Then
Speicherpfad = .SelectedItems(1) & "\"
End If
End With
Dateiname = Dir(Speicherpfad & "", vbDirectory) 'Eingabe von "*Auswertung*" funktioniert anstelle von ""
Dateiname_neu = Dateiname
Zeit = FileDateTime(Speicherpfad & Dateiname)
Do While Dateiname  ""
If Zeit 
Vielleicht könnt ihr mir hier weiter helfen, schon mal vielen Dank.
LG Darius

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname "."
26.07.2021 12:21:58
Zwenn
Hallo Darius,
ganz bekomme ich es nicht mehr zusammen, aber aus den alten DOS Zeiten weiß ich noch, dass es zwei Verweise auf Verzeichnisse gibt, die mit Punkten abgebildet werden. Ein Punkt ist glaube ich der Selbstbezug und zwei Punkte verweisen auf das übergeordnete Verzeichnis. Ich nehme an, Du erwischst mit Deiner Vorgehensweise ohne Angabe wenigstens eines Teils eines Namens den Selbstbezug.
https://www.i8086.de/dos-befehle/cd.html
Das macht insofern Sinn, weil immer wenn Du etwas in einem Verzeichnis änderst, dann wird das "zuletzt Geändert" Attribut aktualisiert. Genau das liest FileDateTime() aus, sofern schon einmal eine Änderung stattfand. Sonst wird das "Erstellt am" Datum zurück geliefert. Hast Du also gerade eine Datei in dem Ordner angelegt/ geändert/ gelöscht, wird als erstes "." als Selbstbezug gefunden und zurück geliefert.
Viele Grüße,
Zwenn
Anzeige
AW: Dateiname "."
26.07.2021 13:52:39
Darius
Hallo Zwenn,
ja genau die zwei Bezüge sind bei mir aufgetreten, sowohl "." als auch ".."; verstehe jetzt wo sie herkommen. Das macht natürlich Sinn. Vielen Dank :).
Durch eine If-Abfrage, dass der Dateiname nicht gleich der Eigenordner und Überordner ist, konnte ich das Problem lösen.
Hier nochmal der korrigierte Code:

Sub Neuster_Ordner()
Dim Speicherpfad As String
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Wo soll die aktuelle Datei gespeichert werden?"
.ButtonName = "Auswählen"
.Show
If .SelectedItems.Count > 0 Then
Speicherpfad = .SelectedItems(1) & "\"
End If
End With
Dim Dateiname As String
Dim Dateiname_neu As String
Dim Zeit As Date
Dim Dateiname1 As String, Dateiname2 As String
Dateiname = Dir(Speicherpfad & "", vbDirectory)
Dateiname1 = "."
Dateiname2 = ".."
Dateiname_neu = Dateiname
Do While Dateiname  ""
If Zeit 
Viele Grüße
Darius
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige