Registriert seit: 17.02.2016
Version(en): 2016
04.06.2016, 14:15
(Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2016, 14:55 von Rabe.
Bearbeitungsgrund: redundante Zeilöenumbrüche entfernt
)
Hallo Leute,
mit dem Befehl Debug.Print Dir("C:\Musik\*.mp3") bekomme ich den ersten Namen einer im Verzeichnis Musik stehenden mp3-Datei.
Ich suche nach einem Befehl der mir den letzten Namen einer Musikdatei in diesem Verzeichnis ausgibt. Ich weiß, das ich so etwas mit Durchzählen der einzelnen Dateien im Verzeichnis über eine For Each Schleife unter Einbindung des Scripting.FileSystemObject's erreichen kann. Im Rahmen verbesserte Effizienz suche ich aber eine Möglichkeit einer verbesserten, also direkten Ausgabe dieses Dateinamens.
Wenns nicht geht, ok.
Schreibt mir bitte auch das.
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
mal aus der Hilfe zur Dir-Funktion
Zitat:Tip Die Dateinamen werden unsortiert zurückgegeben. Bei Bedarf können Sie die zurückgegebenen Dateinamen in einem Datenfeld speichern und das Datenfeld anschließend sortieren.
Die letzte Datei wäre dann mit Ubound(Datenfeld) erreichbar.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 17.02.2016
Version(en): 2016
Hallo Stefan,
also scheints Hoffnung zu geben. Das bräuchte ich dann aber doch noch etwas genauer.
Registriert seit: 06.12.2015
Version(en): 2016
04.06.2016, 16:12
(Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2016, 16:12 von Fennek.)
Hallo,
der DOS-Befehl
dir /o-d sortiert die Ausgabe mit dem neuesten zuerst. Also mit
mit
ar = Split(CreateObject("wscript.shell").exec("cmd /c Dir " & sPath & sFile & " /o-d").stdout.readall, vbCrLf) (0)
steht in der Variablen ar der Pfad und Dateiname der am letztem abgespeicherten Datei.
mfg
PS: Formel von snb
ungeprüft, eventuell mit dir "" & ... "" /b/o-d
Registriert seit: 17.02.2016
Version(en): 2016
04.06.2016, 16:22
(Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2016, 16:22 von santana.)
Danke Leute. Und speziellen Dank auch an snb. Hätte ich nie und nimmer hinbekommen.
Auf dem Laufwerk C im Ordner Test lautet die von mir jetzt geprüfte Formel:
Code:
ar = Split(CreateObject("wscript.shell").exec("cmd /c Dir " & "C:\Test\" & " /b/o-d ").stdout.readall, vbCrLf)(0)
Registriert seit: 17.02.2016
Version(en): 2016
Hallo Leute,
bezüglich der Ermittlung des letzten Dateinamens in einem Verzeichnis möchte ich noch eine eigene Lösung vorstellen. Zwar kann der Dateiname nicht
mittels einer Programmierzeile ermittelt werden, dafür braucht man aber auch keine Superprogrammierkenntnisse und sauschnell ist das kleine Makro
auch.
Code:
Sub Ermittlung_des_letzten_Dateinamens()
Dim Dateiname, LetzterDateiname
Dateiname = Dir("C:\Testordner\")
While Dateiname <> ""
LetzterDateiname = Dateiname
Dateiname = Dir
Wend
Debug.Print LetzterDateiname
End Sub
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(08.06.2016, 16:56)santana schrieb: bezüglich der Ermittlung des letzten Dateinamens in einem Verzeichnis möchte ich noch eine eigene Lösung vorstellen.
gute Lösung, ich habe es so übernommen, weil ich nicht weiß, wie ich das Debug.Print verwende:
Code:
Option Explicit
Sub Ermittlung_des_letzten_Dateinamens()
Dim Dateiname, LetzterDateiname
Dateiname = Dir("C:\Testordner\")
While Dateiname <> ""
LetzterDateiname = Dateiname
Dateiname = Dir
Wend
MsgBox LetzterDateiname
' Debug.Print LetzterDateiname
End Sub
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Ralf,
(08.06.2016, 17:30)Rabe schrieb: weil ich nicht weiß, wie ich das Debug.Print verwende:
die Ergebnisse werden ins
Direktfenster (STRG+G oder über Menüleiste Ansicht - Direktfenster) geschrieben.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(08.06.2016, 19:51)Steffl schrieb: die Ergebnisse werden ins Direktfenster (STRG+G oder über Menüleiste Ansicht - Direktfenster) geschrieben.
ok. Danke.
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Hi,
warum auch immer, bei mir wird nicht der letzte Dateiname im Verzeichnis angezeigt, sondern einer irgendwo dazwischen. Keine Ahnung warum.
Mit freundlichen Grüßen :)
Michael