Verzeichniss mit aktuellen Monatsnamen erstellen

Hallo Kollegen

Wie kann ich Exce VBA dazu bringen, dass es mir ein Verzeichniss mit den aktuellen Monatsnamen erstellt? z.B. „Januar 2012“ Fals das Verzeichniss schon existiert, soll es nicht erstellt werden.

Danach möchte ich den Speicherpfad sso abändern, dass es mir immer in das Verzeichniss des aktuellen Monats spring und dort die Dateib speichert.
Derzeit sieht die Pfadangabe so aus:
"T:\NM_Public\E&T\NE_NW_Implement\CMTS CORE AUSLASTUNG\Auswertungen 2012\Januar 2012“

Vielen Dank für eure Hilfe

Gruss

W. Häfliger

"T:\NM_Public\E&T\NE_NW_Implement\CMTS CORE
AUSLASTUNG\Auswertungen 2012\Januar 2012“

Hallo Walter,

soll die 2012 in
Auswertungen 2012
auch je nach aktuellem jahr abgeändert werden?
Also z.B. Auswertungen 2013
erstellt werden?

Gruß
Reinhard

Hallo Richard

Das ist eine berechtigte Frage. Weiss ich aber selbst nicht. Ich denke eher nicht, da sich das ja nur einmal im Jahr ändert.

Gruss

Walter

Das ist eine berechtigte Frage. Weiss ich aber selbst nicht.
Ich denke eher nicht, da sich das ja nur einmal im Jahr
ändert.

Hallo Walter,

ungetestet, Code gehört in ein Standardmodul:

Option Explicit

Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" \_
 (ByVal lpPath As String) As Long

Sub Test()
Dim strPath As String, lngRet As Long
Const strPfad As String = "T:\NM\_Public\E&T\NE\_NW\_Implement\CMTS CORE AUSLASTUNG\"
strPath = strPfad & "Auswertungen " & Format(Date, "YYYY") & "\"
strPath = strPath & Format(Date, "MMMM YYYY")
lngRet = MakeSureDirectoryPathExists(strPath)
If lngRet 0 Then ThisWorkbook.SaveAs strPath & "\" & ThisWorkbook.Name
End Sub

Gruß
Reinhard

Hallo Richard

Ich bekomme eine Fehlermeldung:
MakeSureDirectoryPathExists Sub oder Funktion nicht Definiert.
Gruss

Walter

Ich bekomme eine Fehlermeldung:
MakeSureDirectoryPathExists Sub oder Funktion nicht Definiert.

Hallo Walter,

wenn du sicher bist daß du auch die Deklaration der API-Funktion mit rüberkopert hast und der Code auch in einem Standardmodul steht dann zeige mal bitte den kompletten Code der in dem Modul steht.

Hinweis, DieseArbeitsmappe, Tabelle1, Tabelle2 usw, sind KEINE Standardmodule.
Das sind Klassenmodule der Arbeitsmappe o.ä.

Gruß
Reinhard

Hallo Richaerd

Sorry mein Fehler! Ich hatte natürlich nur den Teil ab Sub kopiert.

-Jetzt scheint es zu klappen!

Danke

Gruss

Walter

Verzeichnisse, Verzeichnisbäume anlegen mit VBA
Hallo Wetlar,

(Richaerd? Tztz) *kicher*

Sorry mein Fehler! Ich hatte natürlich nur den Teil ab Sub
kopiert.

-Jetzt scheint es zu klappen!

Sag Bescheid falls nicht. Und falls dem so ist gehe ich jetzt schon erstmal davon aus daß es nicht funktioniert weil du da auf Ordner zugreifen willst durch den Code auf die du keine Zugriffsrechte hast o.ä. Gibt da natürlich auch andere Gründe.

Übrigens, wenn du nach Ordnererstellung im Code überprüfen willst ob
der Ordner auch erstellt wurde könntest du nach der Codezeile
lngRet = MakeSure…
sowas einbauen:

 If lngRet 0 Then
 MsgBox "das Verzeichnis '" & strPath & "' wurde erstellt!", vbInformation, "Hinweis"
 Else
 MsgBox "das Verzeichnis '" & strPath & "' konnte nicht erstellt werden!", vbInformation, "Hinweis"
 End If

Falls du etwas wesentliches in meinem Code noch nicht erkannt hast.
MakeSureDirectoryPathExists() erstellt den untersten Unterordner,
und wenn die darüber befindlichen Ordner nicht existieren werden die gleich mit erstellt.

Diese API-Funktion ist also viel mächtiger als das MkDir im normalen Vba.

Gruß
Reinhard