Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dir Funktion in Excel VBA funktioniert nicht

Forumthread: Dir Funktion in Excel VBA funktioniert nicht

Dir Funktion in Excel VBA funktioniert nicht
22.09.2018 22:39:46
David
Hallo liebe Community,
ich habe eine Frage bezüglich der Dir Funktion in Excel VBA (Version 2016).
Durch folgenden Code möchte ich abrufen, ob eine Datei existiert, oder nicht:
Sub ExistiertFile()
Dim name As String
name = "C:\Excelinventory\Hallo"
MsgBox Dir(name)'(Das hatte ich eingefügt, um zu überprüfen, was Dir ausgibt. Leider ist das  _
immer null bzw. "", auch wenn die Datei existiert.)
If Dir(name)  "" Then
MsgBox "Gibt es nicht"
Else
MsgBox "Die Datei existiert"
End If
End Sub

Ändere ich den name (Dateipfad), so wird mir immer zurückgegeben, dass die Datei existiert.
Somit funktioniert die Abfrage für mich leider nicht.
Im File-Upload kann man meine Ordnerstruktur einsehen.
Ich würde mich über Tipps/Hinweise freuen, was ich falsch mache?
Liebe Grüße,
David
Userbild
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dir Funktion in Excel VBA funktioniert nicht
22.09.2018 22:56:29
onur
Heisst die Datei nur Hallo oder evtl. Hallo.txt, Hallo.xls oder so ähnlich?
AW: Dir Funktion in Excel VBA funktioniert nicht
22.09.2018 23:19:23
David
Die Datei heist Hallo und ist eine Word-Datei (Kannst du im Screenshot auch nochmal sehen). Von daher vermutlich dann eine .docx
Muss ich dies in der Dir Funktion speziell angeben, damit die Datei auch gefunden wird?
Ist für mich leider das erste Mal, dass ich die Dir Funktion benutze und bei meiner Suche im Internet bin ich nicht wirklich schlau darausgeworden, wie die korrekte syntax in meinem Fall heisen müsste bzw. an was es liegen kann, dass die Funktion nicht tut, was sie eigentlich sollte.
Anzeige
AW: Dir Funktion in Excel VBA funktioniert nicht
22.09.2018 23:27:49
Rudi
Hallo,
Muss ich dies in der Dir Funktion speziell angeben, damit die Datei auch gefunden wird?
Ja. Oder mit Wildcards.
If Dir(name & ".*") "" Then
Gruß
Rudi
AW: Dir Funktion in Excel VBA funktioniert nicht
23.09.2018 06:37:03
David
Hallo Rudi,
Super. Vielen Dank dir für die Hilfe!
Anfangs hat es nicht direkt geklappt, da ich noch als Operator hatte. Nachdem ich diesen durch ein = ausgetauscht habe funktioniert es jetzt reibungslos. Zudem ist es in meinem Fall die Endung .docx (.* wie von dir vorgeschlagen funktioniert natürlich auch ;) ) für das Worddokument.
mit If Dir(name & ".docx") = "" then funktioniert jetzt alles.
Gruß,
David
Anzeige
AW: Dir Funktion in Excel VBA funktioniert nicht
23.09.2018 00:52:34
Mullit
Hallo,
den Schritt sollte man eigentlich immer machen, bevor man anfängt mit Excel zu arbeiten oder gar in VBA zu proggen, bei Einrichtung von Windows die ausgeblendeten Dateitypen immer anzeigen lassen...
http://techmixx.de/windows-10-dateiendungen-anzeigen-oder-ausblenden/
Gruß, Mullit
Anzeige
AW: Dir Funktion in Excel VBA funktioniert nicht
24.09.2018 02:35:37
David
Danke Mullit für die Information.
Wie gesagt war es für mich das erste mal, dass ich mit der Funktion gearbeitet habe. Für weiter Projekte werde ich den Hinweis aber bestimmt gut gebrauchen können.
Grüße,
David
;
Anzeige
Anzeige

Infobox / Tutorial

Dir Funktion in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe in den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  3. Kopiere und füge den folgenden Code ein:

    Sub ExistiertFile()
       Dim name As String
       name = "C:\Excelinventory\Hallo.docx" ' Stelle sicher, dass der korrekte Dateipfad und die Dateiendung angegeben sind
       If Dir(name) = "" Then
           MsgBox "Die Datei existiert nicht"
       Else
           MsgBox "Die Datei existiert"
       End If
    End Sub
  4. Führe den Code aus:

    • Drücke F5 oder klicke auf "Run" (Ausführen), um die Funktion zu testen.

Häufige Fehler und Lösungen

  • Datei wird nicht gefunden:

    • Stelle sicher, dass der Dateipfad korrekt ist und die Datei die richtige Endung hat (z.B. .docx für Word-Dateien). Der vba dir command benötigt den vollständigen Pfad und die Dateiendung.
  • Falscher Operator:

    • Wenn Du den Vergleichsoperator falsch verwendest (z.B. If Dir(name) <> ""), wird das Ergebnis nicht wie erwartet sein. Verwende If Dir(name) = "".

Alternative Methoden

Eine alternative Möglichkeit zur Überprüfung, ob eine Datei existiert, ist die Verwendung der FileSystemObject-Klasse. Diese Methode ist besonders nützlich, wenn Du mit mehreren Dateitypen oder -pfaden arbeiten möchtest.

Sub CheckFileExists()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists("C:\Excelinventory\Hallo.docx") Then
        MsgBox "Die Datei existiert"
    Else
        MsgBox "Die Datei existiert nicht"
    End If
End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie Du die Dir-Funktion in verschiedenen Szenarien verwenden kannst:

  1. Überprüfung auf verschiedene Dateiendungen:

    If Dir(name & ".*") <> "" Then
       MsgBox "Eine Datei mit dieser Basis existiert."
    End If
  2. Verwendung von Wildcards:

    • Du kannst Wildcards verwenden, um nach Dateien mit bestimmten Mustern zu suchen, z.B.:
      If Dir("C:\Excelinventory\*.docx") <> "" Then
      MsgBox "Mindestens eine Word-Datei existiert."
      End If

Tipps für Profis

  • Versteckte Dateiendungen anzeigen: Es ist wichtig, die Dateiendungen in Windows anzuzeigen, um sicherzustellen, dass Du die richtigen Endungen verwendest. Dies kannst Du in den Ordneroptionen von Windows einstellen.

  • Fehlerprotokollierung: Füge Fehlerprotokollierung in Deine VBA-Skripte ein, um mögliche Probleme schneller zu identifizieren. Verwende dazu On Error Resume Next und On Error GoTo 0, um Fehler zu ignorieren oder zu behandeln.


FAQ: Häufige Fragen

1. Warum funktioniert die Dir-Funktion manchmal nicht? Die Dir-Funktion funktioniert nicht, wenn der angegebene Pfad oder die Datei nicht existiert. Achte darauf, dass der Pfad korrekt und die Dateiendung angegeben ist.

2. Kann ich die Dir-Funktion auch für Ordner verwenden? Ja, die Dir-Funktion kann auch verwendet werden, um nach Ordnern zu suchen. Dazu musst Du den Ordnerpfad angeben und den entsprechenden Vergleich verwenden.

3. Wo finde ich die Dokumentation zur Dir-Funktion? Die Dokumentation zur Dir-Funktion findest Du in der Microsoft VBA-Dokumentation. Suche nach "Dir VBA" auf der offiziellen Microsoft-Website.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige