Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei nicht gefunden lt. VBA..erkennt aber datei

Datei nicht gefunden lt. VBA..erkennt aber datei
15.04.2009 12:06:54
Fabio
Hallo zusammen,
Dank des Forums habe ich mittlerweile u.g. Code erhalten. Beim Ausführen erhalte ich aber eine Fehlermeldung:
"Datei jugendA_Tore.xls" nicht gefunden
Excel scheint ja die Datei zu finden, sonst wüsste Excel nicht wie die Datei heisst. Bin gerade ziemlich ratlos..jemand einen guten Tipp/Trick für mich ?
(Wenn ich die Datei lösche, dann meldet Excel die nächste Datei in dem Verzeichnis (z.B. jugendB_Tore.xls) als nicht gefunden.
Fabio

Sub datenSammeln()
Dim strPath As String, strFile As String, strTab As String
Dim lngR As Long
Dim i
Dim ZielBook As String, QuellBook As String
lngR = 2 'startZeile
strTab = "Tabelle1"  'ZielSheet
ZielBook = ActiveWorkbook.Name
strPath = "G:\2009\Test\Kindersport" 'Verzeichnis - Anpassen
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
strFile = Dir(strPath & "*.xls")
Do While strFile  ""
If strFile  ZielBook Then
'Workbook open
Workbooks.Open strFile
QuellBook = ActiveWorkbook.Name
For i = 1 To Workbooks(QuellBook).Sheets().Count()
Workbooks(ZielBook).Sheets(strTab).Cells(lngR, 2).Value = Workbooks(QuellBook).  _
_
Sheets(i).Name
Workbooks(ZielBook).Sheets(strTab).Cells(lngR, 3).Value = Workbooks(QuellBook).  _
_
Sheets(i).Cells(80, 4)
lngR = lngR + 1
Next i
Workbooks(QuellBook).Close
End If
strFile = Dir
Loop
End Sub


Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei nicht gefunden lt. VBA..erkennt aber datei
15.04.2009 12:15:47
Oberschlumpf
Hi Fabio
Versuch mal

Workbooks.Open strPath & strFile


Der Versuch Workbooks.Open strFile schlägt deshalb fehl, weil in strFile nur der Dateiname steht.
Workbooks.Open strFile
bedeutet also
"Öffne die Datei strFile im aktuellen Verzeichnis"
var = Dir(path & dateiname) liefert NUR Dateiname aber NICHT Verzeichnispfad zurück.
...by the way...
Diese Zeilen
strPath = "G:\2009\Test\Kindersport" 'Verzeichnis - Anpassen
If Right(strPath, 1) "\" Then strPath = strPath & "\"
kannst du so abkürzen:
strPath = "G:\2009\Test\Kindersport\" 'Verzeichnis - Anpassen
Da du den Pfad ja eh vorgibst, schreib den Backslash doch gleich mit rein.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Datei nicht gefunden lt. VBA..erkennt aber datei
15.04.2009 13:44:54
Rainer
Der Code liesst jede Mappe im Verzeichnis ein und wenn der Name der Mappe nicht gleich dem Namen des aktiven Workbooks ist, dann führt er die Anweisungen zur Übernahme der Daten aus. Somit ist klar, dass er das gleiche Problem hat mit der nächsten Datei, wenn Du die erste Datei löscht.
Kann aber den Fehler nicht nachvollziehen, habe schnell den Code rauskopiert und bei mir mal durchlaufen lassen, läuft alles bestens.
Aber würde die Zeile "Dim i" wie folgt abändern "Dim i As Integer".
Probiere mal eine Mappe mit dem Namen Test1 in das Verzeichnis abzulegen und zu gucken ob diese dann (das Verzeichnis sollte allerdings leer sein für den Test) geöffnet werden kann, bzw. ob die Fehlermeldung dann immer noch kommt ... glaube nämlich gerade nicht dran das der Fehler im Code liegt.
@ Thorsten
Bei mir liefert strFile = Dir(strpath & "*.xls") allerdings sauber Pfad und Filename und wie geschrieben, der Code läuft bei mir ohne Änderung sauber durch und öffnet auch die Testmappen die ich mal auf die schnelle angelegt habe.
Gruß
Rainer
Anzeige
AW: Datei nicht gefunden lt. VBA..erkennt aber datei
15.04.2009 13:53:32
Oberschlumpf
Hi Rainer
Dann liegt das wohl an der XL-Version (ich hab XL 2002)
Und bei mir liefert Dir das hier zurück:
Userbild
Bei dir, bzw in XL 2007 wird da wohl "D:\Kopie von 61112.xls" zurückgegeben.
Na ja, ich hatte nich auf die Version geachtet, und wusste auch bis jetzt nicht, dass die Dir-Funktion von MS modifiziert wurde.
Ciao
Thorsten
Anzeige
AW: genial
18.04.2009 17:52:01
Fabio
Hallo zusammen,
die beiden Tipp's zusammen haben mir geholfen - zumindest funktioniert jetzt erstmal alles so wie es sollte!
Vielen lieben Dank an Euch!
Fabio
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei nicht gefunden: Fehlerbehebung in VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.
  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xls)“ und wähle „Einfügen“ > „Modul“.
  3. Füge den Beispielcode ein:
    Sub datenSammeln()
       Dim strPath As String, strFile As String, strTab As String
       Dim lngR As Long
       Dim i
       Dim ZielBook As String, QuellBook As String
       lngR = 2 'startZeile
       strTab = "Tabelle1"  'ZielSheet
       ZielBook = ActiveWorkbook.Name
       strPath = "G:\2009\Test\Kindersport" 'Verzeichnis - Anpassen
       If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
       strFile = Dir(strPath & "*.xls")
       Do While strFile <> ""
           If strFile <> ZielBook Then
               Workbooks.Open strPath & strFile
               QuellBook = ActiveWorkbook.Name
               For i = 1 To Workbooks(QuellBook).Sheets().Count()
                   Workbooks(ZielBook).Sheets(strTab).Cells(lngR, 2).Value = Workbooks(QuellBook).Sheets(i).Name
                   Workbooks(ZielBook).Sheets(strTab).Cells(lngR, 3).Value = Workbooks(QuellBook).Sheets(i).Cells(80, 4)
                   lngR = lngR + 1
               Next i
               Workbooks(QuellBook).Close
           End If
           strFile = Dir
       Loop
    End Sub
  4. Passe den Verzeichnispfad an: Stelle sicher, dass der Pfad zu Deinen Excel-Dateien korrekt ist.
  5. Führe das Makro aus: Drücke F5 oder klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Stelle sicher, dass der Pfad korrekt ist und die Datei existiert. Der Fehler tritt häufig auf, wenn nur der Dateiname anstelle des vollständigen Pfades angegeben wird. Verwende Workbooks.Open strPath & strFile.

  • Verzeichnispfad korrekt setzen:
    Achte darauf, dass der Verzeichnispfad mit einem Backslash (\) endet. Beispiel: strPath = "G:\2009\Test\Kindersport\".

  • Excel-Version prüfen:
    Unterschiede in der Excel-Version können Auswirkungen auf die Dir-Funktion haben. Einige Versionen geben möglicherweise nur den Dateinamen zurück, während andere den vollständigen Pfad liefern.


Alternative Methoden

  • Verwendung der FileDialog-Methode:
    Du kannst die Datei auch über einen Dialog öffnen, wodurch der Pfad manuell ausgewählt wird:

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    If fd.Show = -1 Then
      Workbooks.Open fd.SelectedItems(1)
    End If
  • Die Application.GetOpenFilename-Methode:
    Diese Methode ermöglicht es Dir, eine Datei auszuwählen und den Pfad als String zu erhalten:

    Dim filePath As String
    filePath = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
    If filePath <> "False" Then
      Workbooks.Open filePath
    End If

Praktische Beispiele

  • Mehrere Dateien in einem Verzeichnis öffnen:
    Der bereitgestellte Code öffnet alle .xls-Dateien in einem bestimmten Verzeichnis und sammelt Daten in einer Ziel-Tabelle.

  • Daten von spezifischen Zellen kopieren:
    Ändere die Zellenreferenzen im Code, um Daten aus anderen Zellen zu extrahieren. Zum Beispiel, um den Wert aus Zelle A1 zu kopieren:

    Workbooks(ZielBook).Sheets(strTab).Cells(lngR, 4).Value = Workbooks(QuellBook).Sheets(i).Cells(1, 1)

Tipps für Profis

  • Verwende Fehlerbehandlung:
    Implementiere „On Error Resume Next“, um Laufzeitfehler zu vermeiden, die beim Öffnen von Dateien auftreten können.

  • Optimiere die Leistung:
    Deaktiviere „ScreenUpdating“ und „Calculation“ zu Beginn des Codes, um die Ausführungsgeschwindigkeit zu erhöhen:

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
  • Kommentare im Code:
    Halte Deinen Code mit klaren Kommentaren übersichtlich, insbesondere wenn Du komplexe Logik verwendest.


FAQ: Häufige Fragen

1. Was kann ich tun, wenn die Datei nach dem Ausführen des Makros immer noch nicht gefunden wird?
Überprüfe den Verzeichnispfad und stelle sicher, dass die Datei tatsächlich im angegebenen Ordner vorhanden ist. Achte auch auf Namenskonventionen und mögliche Leerzeichen.

2. Ist dieser Code mit jeder Excel-Version kompatibel?
Der bereitgestellte Code kann in verschiedenen Versionen von Excel funktionieren, jedoch können einige Funktionen je nach Version unterschiedlich sein. Stelle sicher, dass Du die Kompatibilität testest, insbesondere bei älteren Versionen wie Excel 2002.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige