Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
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
Inhaltsverzeichnis

MkDir bringt Fehlermeldung

MkDir bringt Fehlermeldung
Ximena
Hallo ihr Lieben
Hab grad zwei Fragen auf einmal (andere Frage ist in anderem Beitrag). Hier dreht es sich um eine Fehlermeldung...
Also ich habe ein Makro, das kontrolliert, ob ein gewisser Ordner schon besteht. Falls nicht, legt er ihn an und kopiert danach verschiedene Dateien hinein.
Das klappt soweit auch, aber ich möchte jetzt, dass wenn der Ordner schon exisitert, dass er dann das Sub abbricht (mit Exit Sub).
Mein code:
    mypath = "C:\SLRReports" & myMonth & "\"
'Kontrollieren, ob es das Verzeichnis schon gibt und falls nicht, erstellen
If Dir(mypath) = "" Then
'Erstellen
MkDir mypath
ElseIf Dir(mypath) = "C:\SLRReports" & myMonth & "\" Then
Exit Sub
End If

funktioniert nicht, wenn der Ordner schon existiert! Wenn ich es mit F8 mache, und der Ordner existiert, hüpft er trotzdem in die MkDir mypath Zeile und dann kommt logischerweise die Fehlermeldung...
Was mache ich falsch?
Liebe Grüsse
Ximena

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: MkDir bringt Fehlermeldung
07.06.2012 11:26:42
Hajo_Zi
vielleicht gibt es den Ordner nicht. Das können wir nicht sehen.
Vielleicht so prüfen
If Dir("C:\Eigene Dateien\", vbDirectory) ""

AW: MkDir bringt Fehlermeldung
07.06.2012 11:28:30
Ximena
Hallo Hajo
Doch den Ordner gibts, weil ich ihn ja im ersten Durchgang erstelle und wenn sie nochmals laufen lasse, dann sollte es den Ordner ja immernoch geben?!?!
Wieso nimmst du jetzt "EigeneDateien" und "vbDirectory"? Was hat das zu bedeuten? Also muss ich das jetzt auf mein Bsp anwenden?
Liebe Grüsse
Ximena
AW: MkDir bringt Fehlermeldung
07.06.2012 11:29:56
Hajo_Zi
ich habe meinen Ordner genommen, Deinen dahin kopieren hätte ich nicht alös Problem angesehen.
Gruß Hajo
Anzeige
AW: MkDir bringt Fehlermeldung
07.06.2012 12:27:36
Ximena
Hallo Hajo
Achso... Hat mich grad verwirrt :) ransi hat da auch noch ne Lösung, werd mal schauen, welche sich besser für mein Problem eignet :D
Danke und liebe Grüsse
Ximena
Private Declare Function MakeSureDirectoryPathExis
07.06.2012 11:28:21
ransi
Hallo Ximena
MkDir ist etwas sperrig.
Schau dir mal die API :
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal DirPath As String) As Long
an.
http://www.vbarchiv.net/api/api_makesuredirectorypathexists.html
Die kann das recht gut lösen.
ransi
Dazu brauche ich Hilfe :D
07.06.2012 11:35:13
Ximena
Hallo ransi
Danke für den Link, das wäre allerdings etwas... Nur habe ich ein Problem, es auf mein Makro anzuwenden. Kannst du mir helfen?
Also ich erklär nochmals was das Makro machen muss:
Das Makro muss kontrollieren, ob ein gewisser Ordner exisitiert. Falls dieser nicht exisitiert, muss es ihn erstellen und weiter unten im Makro muss es Dateien da rein legen.
Falls der Ordner aber schon exisistiert, muss sich das Makro abbrechen, da ja die Dateien dann auch schon drin sind und die ja nicht zweimal da rein müssen.
Mit dem MakeSureDirectory dings, erstellt es den Ordner und bricht dann ab, egal ob es ihn schon gibt oder nicht... Kannst du mir helfen, wie ich das korrekt anwenden muss?
Liebe Grüsse
Ximena
Anzeige
AW: Dazu brauche ich Hilfe :D
07.06.2012 11:56:36
ransi
HAllo Ximena
Schau mal ob das so passt:
Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long


Sub mach_was()
    Dim mypath As String
    Dim myMonth As String
    Dim Retval
    myMonth = "Juni"
    mypath = "C:\SLRReports" & myMonth & "\"
    
    If Dir(mypath) = "" Then '...ein Makro, das kontrolliert, ob ein gewisser Ordner schon besteht.
        'Den Ordner gibts noch nicht:
        Retval = MakeSureDirectoryPathExists(mypath)
        If Retval = 1 Then
            MsgBox "Ordner wurde erstellt. Jetzt kannst du ""deine Dateien da rein legen"" ;-)"
            Exit Sub
            Else:
            MsgBox "Der Ordner ist nicht vorhanden und wurde nicht erstellt." & vbCrLf & "Da gibts ein Problem"
        End If
        Else:
        'Dn Ordner gibts schon
        MsgBox "Den Ordner gibt es schon."
        Exit Sub
    End If
End Sub


ransi
Anzeige
AW: Dazu brauche ich Hilfe :D
07.06.2012 12:30:51
Ximena
Hallo ransi
Danke für den Code. Er funktioniert insofern, dass es den Ordner erstellt. Aber wenn es den Ordner schon gibt, dann macht er ihn immer wieder neu und springt nie in die Zeile
Else:
'Dn Ordner gibts schon
MsgBox "Den Ordner gibt es schon."
Exit Sub
Was muss ich machen? Resp. was mache ich denn falsch? Liegt es am Ordner?
Liebe Grüsse
Ximena
Scripting.FileSystemObject Variante
07.06.2012 14:04:58
Anton
Hallo Ximena,
Code:

Sub b()
  Dim fso As Object, ordner As String    
  ordner = "E:\temp\Ximena" 'anpassen
  Set fso = CreateObject("Scripting.FileSystemObject")  
  If Not fso.FolderExists(ordner) Then  
    fso.CreateFolder (ordner)
   'weiter...
  Else
    MsgBox ordner & " existiert bereits."
  End If  
  Set fso = Nothing  
End Sub  


mfg Anton
Anzeige
Es klappt :D
07.06.2012 14:12:28
Ximena
Hallo Anton
Yeah!!!! Es klappt! Vielen vielen Dank :D:D:D:D:D:D
Liebe Grüsse
Ximena

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige