PDA

Vollständige Version anzeigen : Alle SUB`s abbrechen


Muecke.1982
21.09.2016, 18:02
Hallo miteinander,

in einem Code möchte ich verschiedene Verzeichnisse Prüfen und anlegen lassen, damit ich meinen Code nicht mehrmals eingeben muss dachte ich mri das ich den teil in eine Separate SUB packe und dann nur noch die SUB aufrufen muss.

mein Problem ist jedoch das ich bisher wenn das Verzeichnis nicht angelegt werden konnte das Makro abgebrochen habe. was jetzt so leider nicht mehr funktioniert. da ich die Sub ja aus einer anderen SUB heraus aufrufe.
Gibt es einen Befehl der alle Aktuell laufenden Makros abbricht?

das ist mein Code




Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long ' Diese Funktion erstellt einen kompletten Verzeichnispfad inklusive noch nicht vorhandener Unterordner.

SUB Haupt_programm

....
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 1/")
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 2/")
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 3/")
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 4/")
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 5/")
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 6/")
Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen("C:/test 7/")

....
END SUB



Sub Verzeichnis_prufen_ob_vorhanden_wenn_nicht_anlegen(Pfad)

If Dir(Pfad, vbDirectory) = "" Then ' Wenn Verzeichnis nicht existiert ! dann
Dim Retval As Long
Retval = MakeSureDirectoryPathExists(Pfad) ' Verzeichnis erstellen
If Retval = 0 Then
MsgBox "Das Verzeichnis " & Chr(10) & _
Pfad & Chr(10) & _
"konnte nicht angelegt werden!" & Chr(10) & _
Chr(10) & _
"Makro wird nach Fokus-Verlust abgebrochen !!", vbCritical ' vbExclamation
Exit Sub
Else
MsgBox "Das Verzeichnis " & Chr(10) & _
Pfad & Chr(10) & _
"wurde angelegt !", vbInformation
End If
End If

End Sub

Hajo_Zi
21.09.2016, 18:11
radikal End

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

Muecke.1982
21.09.2016, 18:16
Ok das hört sich einfach an :-)

haklesoft
21.09.2016, 18:42
Mach' aus der Sub eine Function und liefere das Ergebnis der Anlegeoperation zurück. Dann kann die aufrufende Routine entsprechend reagieren.