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

Alle Daten in einem Ordner durchlaufen

Forumthread: Alle Daten in einem Ordner durchlaufen

Alle Daten in einem Ordner durchlaufen
Matthias
Guten Morgen
Ich versuche mit diesem Code alle Bedingten Formatierungen aus allen Exceldateien in einem Ordner zu entfernen. Leider scheint es jedoch noch einen Fehler zu haben:
Code:
Sub Dateien_Auf_Speichern_Zu()
Dim Datei As String
Dim Arbeitsmappe As String
Dim PFAD As String
PFAD = "C:\Geschäftliches\Test\"
Datei = Dir(PFAD & "*.xls")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Do While Datei  ""
Application.Workbooks.Open Filename:=Datei
ActiveSheet.Unprotect
Cells.FormatConditions.Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWorkbook.Close True
Datei = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Fehler:
Laufzeitfehler 1004
'Name-der-Datei' wurde nicht gefunden. Überprüfen Sie die Rechtschreibung des Dateinamens, und überprüfen Sie, ob der Speicherort der Datei korrekt ist.
Könnt ihr mir eventuell weiterhelfen?
Danke und liebe Grüsse
Matthias
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Alle Daten in einem Ordner durchlaufen
31.07.2009 09:24:11
Luschi
Hallo Matthias,
wenn Du Dir nach diesem Befehl
Datei = Dir(PFAD & "*.xls")
mal den Inhalt von Datei ansschaust (MsgBox Datei), wirst Du feststellen, das die Variable Datei nur den Dateinamen enthält, aber nicht den dazugehörigen Pfad.
Deshalb so:
Application.Workbooks.Open Filename:=PFAD & Datei
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Alle Daten in einem Ordner durchlaufen
31.07.2009 09:53:39
Matthias
Vielen Dank Luschi, hat super geklappt!
AW: Alle Daten in einem Ordner durchlaufen
31.07.2009 09:35:41
Tino
Hallo,
versuche es mal so.
Sub Dateien_Auf_Speichern_Zu()
Dim Datei As String
Dim Arbeitsmappe As String
Dim PFAD As String
PFAD = "C:\Geschäftliches\Test\"
ChDrive Left(PFAD, 3)   'Login Laufwerk
ChDir PFAD              'Login Ordner
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Datei = Dir(PFAD & "*.xls")
Do While Datei  ""
Workbooks.Open Filename:=Datei
If ActiveSheet.Cells.FormatConditions.Count > 0 Then
ActiveSheet.Unprotect
ActiveSheet.Cells.FormatConditions.Delete
ActiveSheet.Protect
ActiveWorkbook.Close True
Else
ActiveWorkbook.Close False
End If
Datei = Dir()
Loop
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Oder beim öffnen den Pfad mit vorranstellen.
Workbooks.Open PFAD & Datei
Gruß Tino
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Alle Dateien in einem Ordner durchlaufen mit VBA


Schritt-für-Schritt-Anleitung

Um alle Dateien in einem Ordner mit VBA durchzulaufen und beispielsweise bedingte Formatierungen zu entfernen, kannst du den folgenden Code verwenden:

Sub Dateien_Auf_Speichern_Zu()
    Dim Datei As String
    Dim PFAD As String
    PFAD = "C:\Geschäftliches\Test\"
    Datei = Dir(PFAD & "*.xls")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Do While Datei <> ""
        Application.Workbooks.Open Filename:=PFAD & Datei
        ActiveSheet.Unprotect
        Cells.FormatConditions.Delete
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveWorkbook.Close True
        Datei = Dir()
    Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Stelle sicher, dass du den Pfad zu deinem Ordner korrekt angibst. Der Code öffnet jede Excel-Datei (.xls) im angegebenen Ordner und entfernt die bedingte Formatierung.


Häufige Fehler und Lösungen

Ein häufiges Problem, das auftreten kann, ist der Laufzeitfehler 1004:

Fehler: 'Name-der-Datei' wurde nicht gefunden. Überprüfen Sie die Rechtschreibung des Dateinamens, und überprüfen Sie, ob der Speicherort der Datei korrekt ist.

Lösung: Der Fehler tritt auf, weil der Pfad zur Datei nicht korrekt angegeben wird. Ändere die Zeile:

Application.Workbooks.Open Filename:=Datei

zu:

Application.Workbooks.Open Filename:=PFAD & Datei

Hierbei wird der vollständige Pfad zur Datei verwendet, was den Fehler behebt.


Alternative Methoden

Eine alternative Methode, um alle Dateien eines Ordners durchzulaufen, besteht darin, die ChDrive und ChDir Befehle zu verwenden, um das aktuelle Laufwerk und Verzeichnis zu ändern:

ChDrive Left(PFAD, 3)   'Login Laufwerk
ChDir PFAD              'Login Ordner

Dies kann nützlich sein, wenn du mit .dir-Dateien oder anderen Dateiformaten arbeiten möchtest.


Praktische Beispiele

Hier ist ein Beispiel, das zusätzlich prüft, ob bedingte Formatierungen vorhanden sind, bevor sie gelöscht werden:

If ActiveSheet.Cells.FormatConditions.Count > 0 Then
    ActiveSheet.Unprotect
    ActiveSheet.Cells.FormatConditions.Delete
    ActiveSheet.Protect
End If

Mit dieser Ergänzung wird die Arbeitsmappe nur dann bearbeitet, wenn tatsächlich bedingte Formatierungen vorhanden sind.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False: Dies sorgt für eine schnellere Ausführung deines Codes, da Excel nicht bei jedem Schritt neu gezeichnet wird.
  • Speichere regelmäßig: Wenn du mit vielen Dateien arbeitest, kann es sinnvoll sein, regelmäßig zu speichern, um Datenverluste zu vermeiden.
  • Erweitere auf andere Dateiformate: Du kannst die Dir-Funktion anpassen, um auch andere Dateiformate (z. B. .xlsm) zu durchlaufen.

FAQ: Häufige Fragen

1. Was mache ich, wenn meine Datei nicht geöffnet wird?
Überprüfe den Pfad und den Dateinamen. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.

2. Wie kann ich die Anzahl der zu bearbeitenden Dateien überprüfen?
Füge einfach einen Zähler hinzu, der die Anzahl der bearbeiteten Dateien zählt und am Ende ausgibt.

3. Kann ich auch .dir-Dateien mit diesem Code bearbeiten?
Ja, du kannst den Code anpassen, um auch .dir-Dateien zu öffnen, indem du die Filterkriterien in der Dir-Funktion änderst.

Durch die Anwendung dieser Anleitung kannst du effizient mit VBA alle Dateien in einem Ordner durchlaufen und gezielte Änderungen vornehmen.

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