Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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
Dateien aus Ordner erkennen
08.07.2021 15:55:18
Martin
Hallo zusammen,
ich habe einen Ordner, wo txt Dateien automatisch zur Weiterverarbeitung abgelegt werden.
zb. 19283.txt, 19284.txt, 19305.txt
Nach der Verarbeitung werden sie in einen Unterordner verschoben.
Nun würde ich ungern bruteforcemäßig alle Dateinamen raten und vba schauen lassen ob eine Datei in dem Ordner vorhanden ist.
Gibt es auch eine Möglichkeit dass ich an alle Namen der txt-Dateien in dem Ordner komme via VBA Befehel, und diese dann nach und nach ab arbeiten kann?
Gerne auch 1. Datei öffnen, auslesen und dann verschieben, 2. Datei öffnen, auslesen und dann verschieben.... bis der Ordner leer ist.
Dankeschön für Ideen und Meinungen, ob dies möglich ist und wie ihr das lösen würdet.
Euch noch einen schönen Abend.
Grüße Martin

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien aus Ordner erkennen
08.07.2021 16:04:44
Zwenn
Hallo Martin,
das kannst DU mit Dir$() machen.

'Dein vorher stehender VBA Code
'Ersten Dateinamen mit der Dateiendung txt aus dem angegebenen Pfad lesen
'und Schleife laufen lassen, bis keine txt-Datei mehr abzuarbeiten ist
importFile = Dir$(importPath & "*.txt")
Do While importFile  ""
'mach hier was mit der aktuellen txt-Datei
'Nächsten Dateinamen mit der Dateiendung txt aus dem angegebenen Pfad lesen
importFile = Dir$()
Loop
'Dein nachstehender VBA Code
Viele Grüße,
Zwenn
AW: Dateien aus Ordner erkennen
08.07.2021 16:56:09
Niclaus
Hallo Zwenn
Deine Lösung kann ich gut auch für mich verwenden! Vielen Dank!
Ich habe eine Frage dazu: Mein angepasstes Makro heisst:

Sub test33()
importPath = "D:\0000_TEST2\"
importFile = Dir$(importPath & "*.pdf")
Do While importFile  ""
importFile = Dir$()
MsgBox importFile
Loop
End Sub
In einer MsgBbox sollen die Namen aller pdf-Dateien im Ordner "D:\0000_TEST2\" angezeigt werden.
Im betreffenden Ordner gibt es diese vier PDF-Dateien:
ZA_101.pdf
ZA_102.pdf
ZA_103.pdf
ZA_104.pdf
Die MsgBox zeigt mir aber nur ZA_102.pdf, ZA_103.pdf, ZA_104.pdf
und dann ein leeres Meldungsfenster.
ZA_101.pdf wird gar nicht gemeldet.
Weisst Du, woran das liegen kann?
Vielen Dank und viele Grüsse Niclaus
Anzeige
AW: Dateien aus Ordner erkennen
08.07.2021 17:02:43
Zwenn
Hallo Niclaus,
der erste Dateiname wird bereits in der Zeile vor der Schleife eingelesen. Du überschreibst den also direkt im ersten Schleifendurchgang, bevor Du den Dateinamen in der MsgBox anzeigst. So gehts:

Sub test33()
importPath = "D:\0000_TEST2\"
importFile = Dir$(importPath & "*.pdf") 'Liest schon den ersten Dateinamen ein, wenn vorhanden
Do While importFile  ""
MsgBox importFile
importFile = Dir$()
Loop
End Sub
Viele Grüße,
Zwenn
AW: Dateien aus Ordner erkennen
08.07.2021 17:30:47
Niclaus
Hallo Zwenn
So klappts bestens!
Vielen Dank
Niclaus
AW: Dateien aus Ordner erkennen
09.07.2021 08:02:27
dickes
Hallo Zwenn,
gaaanz dickes Danke!
Hat auch wunderbar für mich funktioniert, also gleich zweien gleichzeitg geholfen ;-)
Ich bin aber neugierig.
Wo ist der Clou im Code? Was sind selbst gewählte Namen, was sind Funktionen (importFile? importPath?)?
Bei mir verschiebt es die Dateien nach dem Auslesen, aber bei Niclaus vermutlich nicht; was hindert VBA daran immer die gleiche Datei zu öffnen?
Dankeschön und dir und euch einen guten Start ins Wochenende!
lg Martin
Anzeige
AW: Dateien aus Ordner erkennen
09.07.2021 16:07:45
Zwenn
Hallo Martin,
die einzige verwendete Funktion ist Dir(). Sowohl importFile wie auch importPath sind Variablen vom Datentyp String, was Du wüßtest, wenn Du konsequent Option Explicit verwenden würdest ;-) Dein Makro verschiebt Dateien, weil Du es so programmiert hast. Das Beispiel von Niclaus gibt pro Schleifendurchlauf einen PDF-Dateinamen in einer MessageBox aus, bis alle abgeklappert wurden.
Was man mit Dir() und Co. grundsätzlich anstellen kann, kannst Du hier nachlesen:
https://www.vba-tutorial.de/referenz/dateien.htm
Eine Liste mit den abfragbaren Attributen bekommst Du hier:
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/dir-function
Ein paar einsteigerfreundliche Erklärungen und Beispiele gibt es auch hier (Englisch):
https://trumpexcel.com/vba-dir-function/
Viele Grüße,
Zwenn
Anzeige
AW: Dateien aus Ordner erkennen
09.07.2021 17:06:53
Niclaus
Hallo Zwenn, hallo Martin
Eine weitere Frage habe ich in diesem Zusammenhang:

Sub test333()
importPath = "D:\0000_TEST2\"
importFile = Dir$(importPath & "*.pdf")
Do While importFile  ""
ActiveWorkbook.FollowHyperlink importPath & importFile
importFile = Dir$()
Loop
End Sub
Mit diesem Makro öffne ich die PDF-Dateien. Das klappt auch – nur: Bei bestimmten PDFs meldet sich der Sicherheitshinweis: "Dieser Speicherort ist möglicherweise nicht sicher."
Für mich nicht verständlich ist folgendes: Einige PDFs werden ohne diesen Sicherheitshinweis geöffnet – PDFs, die ich von Kollegen erhalten oder vom Online-Banking heruntergeladen habe.
Bei anderen PDFs – vor allem bei solchen, die ich selber erstellt habe mit Menü Datei / Drucken/ Microsoft Print to PDF – meldet sich der Sicherheitshinweis.
Ich weiss, dass man diesen Sicherheitshinweis via Registry deaktivieren kann. Das mag ich aber nicht.
Mich interessiert vor allem: Warum meldet sich der Sicherheitshinweis bei den einen PDFs, bei den andern aber nicht. Zwenn, hast Du eine Erklärung dafür?
Vielen Dank und schönes Wochenende
Niclaus
Userbild
Anzeige
AW: Dateien aus Ordner erkennen
09.07.2021 18:21:07
Zwenn
Hallo Niclaus,
diesen Hinweis kenne ich nicht. Ich habe jetzt kurz recherchiert und eine MS Seite gefunden, die Du wahrscheinlich auch schon gesehen hast. Der ganze Artikel bezieht sich allerdings auf Office 2007 und 2010. Nutzt Du noch eine der beiden Versionen?
https://docs.microsoft.com/de-de/office365/troubleshoot/administration/enable-disable-hyperlink-warning
Das Easy Fix Teil scheint es nicht mehr zu geben. Ich habe jedenfalls keinen Download dazu gefunden und MS unterstützt es offiziell nicht mehr. Aber das Teil macht vermutlich auch nix anderes, als ebenfalls die Regestry zu ändern. Nur eben komfortabler.
Viele Grüße,
Zwenn
Anzeige
AW: Dateien aus Ordner erkennen
08.07.2021 16:17:50
UweD
Hallo
so?

Sub alle_Dateien_Verzeichnis() '
Dim ALtPfad$, NeuPfad$, Ext$, Datei$
Ext = "*.txt"
ALtPfad = "C:\Temp\" '**** mit \
NeuPfad = "C:\Temp\UD\" '**** mit \
Datei = Dir(ALtPfad & Ext)
Do While Len(Datei) > 0
'Mach was damit
'Beispiel Verschieben
Name ALtPfad & Datei As NeuPfad & Datei
Datei = Dir() ' nächste Datei
Loop
End Sub
LG UweD

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige