VBA automatisch Ordner zu Filename erstellen

Hallo zusammen,
leider kenne ich mich nur sehr schlecht mit VBA aus und würde mich daher über eure Hilfe freuen.

Bisher:
Ein bestehendes Macro (von meinem Vorgänger geschrieben) wandelt verschiedene Excelsheet in eine PDF Datei um und versendet diese dann per Email.
Das Macro sucht sich die entsprechende Exceldatei in „strPath“ öffnet diese erstellt das PDF und legt die wieder im „strPath“ ab. Jedesmal wird das alte PDF überschrieben.

Neu:
Die Excelfiles sollen weiterhin in „strPath“ liegen. Das PDF File jedoch soll nun in einen jeweiligen Ordner unter „strPath“ abgelegt werden.

Mit viel Mühe habe ich es geschaft einen neuen Pfad zu definieren „strPathSave“ der besteht aus dem alten Pfad + dem Dateinamen (strPath & strFile)
Das funktioniert auch soweit ganz gut, das PDF wird nun automatisch in den von mir manuell erstellten Ordner ab.
Das Problem ist nur, dass ich nun ca 40 Ordner anlegen muss die jeweils den Namen des Files bekommen.
Da aber wöchentlich neue Dateien hinzukommen suche ich nach einer Möglichkeit dass Macro automatisch einen neuen Ordner erstellt, wenn bisher noch kein entsprechender Ordner für das File vorhanden war.

evtl noch zur Info:
strPath = „\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement“ 'öffnen

strPathSave = „\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement\Statements“ & strFile & „“ 'Speicherpfad und Filname des PDF

Wäre für eure Hilfe sehr dankbar.
Gruss Todi

Hallo Tobi.

strPath =
„\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement“
'öffnen

strPathSave =
„\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement\Statements“
& strFile & „“ 'Speicherpfad und Filname des PDF

Prinzipiell sollte Dir dieser Code hilfreich sein:

Private Sub Erstelle\_Verzeichnis()
 On Error GoTo Fehler
 ChDir ("C:/bla") 'Diese Anweisung, das aktuelle Verzeichnis auf C:/bla zu setzen, löst einen Fehler aus, wenn das Verzeichnis nicht existiert. Der Code wird dann bei der Sprungmarke "Fehler" weitergeführt.
Ende:
 Exit Sub
Fehler:
 MkDir ("C:/bla") 'Erstellt das Verzeichnis C:/bla
 Resume Ende
End Sub

Das Anpassen an Deine Verzeichnis-Struktur müsstest Du bitte selbst machen.

Viele Grüße
Carsten

Da aber wöchentlich neue Dateien hinzukommen suche ich nach
einer Möglichkeit dass Macro automatisch einen neuen Ordner
erstellt, wenn bisher noch kein entsprechender Ordner für das
File vorhanden war.

evtl noch zur Info:
strPath =
„\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement“
'öffnen

strPathSave =
„\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement\Statements“
& strFile & „“ 'Speicherpfad und Filname des PDF

Hi Tobi,
probiers mal so:

Option Explicit

Sub tt()
Dim strPath, strPathSave
strPath = „\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement“ 'öffnen
strPathSave = „\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement\Statements“ & strFile
If Dir(strPathSave & „/nul“) = „“ Then MkDir („strpathSave“)
End Sub

Gruß
Reinhard

Vielen Dank für eure Hilfe!
Mittlerweile funktioniert das Makro und die Ordner werde automatisch erstellt.
Reinhard nur eine Frage habe noch, für was steht das & „/null“

If Dir(strPathSave & „/nul“) = „“ Then MkDir („strpathSave“)

Evtl. nochmals für User die ein ähnliches Problem haben, das ganze sieht jetzt bei mir so aus:
Dim strPath, strPathSave
strPath = „\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement“ 'öffnen
strPathSave = „\CZRH41P20001b\prodcontrol$\Reporting_Sales\CounterpartyStatement\Statements“ & strFile & „“
If Dir(strPathSave & „/nul“) = „“ Then MkDir (strPathSave)

Vielen Dank nochmal.
Viele Grüsse
Todi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Mittlerweile funktioniert das Makro und die Ordner werde
automatisch erstellt.
Reinhard nur eine Frage habe noch, für was steht das & „/null“

If Dir(strPathSave & „/nul“) = „“ Then MkDir
(„strpathSave“)

Hi Tobi,
genau kann ich dir das nicht sagen, ich weiß nur aus alten DOS-Zeiten, jedes Verzeichnis hat ein „nul“ und es wird mit „/“ und nicht „“ referenziert.

Wenn ich nun abfrage ob das Verzeichnis „C:\abc“ ein „nul“ hat, so kann ich aus der Antwort schließen ob es das Verzeichnis „C:\abc“ überhaupt gibt, also mit z.B. (C:\abc gibt es nicht)

Sub nn()
If Dir(„C:\abc“ & „/nul“) = „“ Then MsgBox „gibtsnicht“
If Dir(„C:“ & „/nul“) „“ Then MsgBox „naja, das hauptverzeichnis gibts meist *gg*“
MsgBox Dir(„C:“ & „/nul“)
End Sub

Und, auf einem Datenspeicher wie Diskette, Fstplatte, hast du noch mehr „versteckte“ Infos, außer dieser „nul“.
Zum Beispiel gibts da noch „CRC“, das ist irgendwie eine Prüfsumme für eine bestimmte Anzahl von Bytes einer Datei.

Und, ich benutze anstatt den WindowsExplorer einen uralten Norton Commander, Version 2.0, der hat alles was ich brauche, damals war wohl Peter Norton selbst aktiv, denn der war fit, nachträgliche Norton-produkte habe ich schon mehrmals von Festplatten geschmissen, weil nicht brauchbar.

Jedenfalls hat das Teil schon 2-Fenstertechnik u.v.m., ich kann Dateien komprimieren und auch entkomprimieren und bei Zip-Dateien passiert es nicht selten daß da dann die Fehlermeldung kommt, kann nicht entpacken wegen CRC-Fehler.

Gut, danach starte ich halt Winzip, da klappts dann.

Zurück zu deiner Nachfrage, so wie es „nul“ gibt, gibt es halt noch mehr, zum Beispiel diese CRC-Einträge, die man m.W. mit Windowsbordmitteln nicht auslesen kann.

Und eakt erklären was das genau ist, kann ich nicht.

Gruß
Reinhard