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

Dateien automatisch nacheinander öffnen

Forumthread: Dateien automatisch nacheinander öffnen

Dateien automatisch nacheinander öffnen
15.06.2005 10:26:38
ozmo
Hallo,
ich habe in einem Verzeichnis Dateien die fortlaufend nummeriert sind
(z.B.: Beispiel_2005_14_06_01.xls, Beispiel_2005_14_06_02.xls usw.).
Wie kann ich diese Dateien mit einem Macro nacheinander öffnen, bearbeiteten und wieder schließen? Mir geht es hierbei nur um das öffnen und schließen. Die Anweisung für die Bearbeitung funktioniert soweit.
Vielen Dank im Voraus.
Grüße, ozmo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dateien automatisch nacheinander öffnen
15.06.2005 10:29:11
Hajo_Zi
Hallo ozmo,
Option Explicit

Sub Dateiliste_Öffnen()
'   erstellt von Hajo.Ziplies@web.de
' <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a>
'   alle Dateien eines Ordners öffnen
Dim strVerzeichnis As String
Dim StrDatei As String
Dim StrTyp As String
Dim Dateiname As String
strVerzeichnis = "D:\Eigene Dateien\Hajo\"
StrTyp = "*.xls"
Dateiname = Dir(strVerzeichnis & StrTyp)
Do While Dateiname <> ""
Workbooks.Open Filename:=strVerzeichnis & Dateiname
' Dein Makro
ActiveWorkbook.Close True
Dateiname = Dir
Loop
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Dateien automatisch nacheinander öffnen
15.06.2005 14:04:50
ozmo
Ich habe mir das mit meinem Macro so vorgestellt:

Sub Makro1()
Dim strVerzeichnis As String
Dim StrDatei As String
Dim StrTyp As String
Dim Dateiname As String
strVerzeichnis = "c:\temp"
StrTyp = "*.dat"
Dateiname = Dir(strVerzeichnis & StrTyp)
Do While Dateiname <> ""
' Workbooks.Open Filename:=strVerzeichnis & Dateiname
' Dein Makro
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;strVerzeichnis & Dateiname", Destination:=Range("A1"))
.Name = ""
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
ActiveWorkbook.Close True
Dateiname = Dir
Loop
End Sub

Ich habe vor die Daten die als Textdatei vorliegen in excel zu öffnen.
Bis ich das Macro in die Schleife eingebunden habe hat es noch funktioniert.
Leider tut sich bei der Ausführung des Macros jetzt nichts mehr.
Was mache ich noch falsch?
Grüße, ozmo.
Anzeige
AW: Dateien automatisch nacheinander öffnen
15.06.2005 14:09:32
Hajo_Zi
Hallo
Du hast das öffnen der Dateien auskommentiert?
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Dateien automatisch nacheinander öffnen
15.06.2005 16:02:05
ozmo
Hallo,
stimmt, das war falsch. Leider funktioniert das Macro dann aber immernoch nicht.
Hat das vielleicht etwas mit der with-Anweisung zu tun?
Grüße, ozmo.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dateien automatisch nacheinander öffnen in Excel VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA alle Dateien in einem Ordner nacheinander zu öffnen, kannst Du das folgende Makro verwenden. Dieses Skript öffnet alle Excel-Dateien mit der Endung .xls in einem angegebenen Verzeichnis:

Sub Dateiliste_Öffnen()
    Dim strVerzeichnis As String
    Dim Dateiname As String
    strVerzeichnis = "D:\Eigene Dateien\Hajo\" ' Ändere den Pfad entsprechend
    Dateiname = Dir(strVerzeichnis & "*.xls")

    Do While Dateiname <> ""
        Workbooks.Open Filename:=strVerzeichnis & Dateiname
        ' Hier kannst Du Deine Bearbeitungen an den geöffneten Dateien vornehmen
        ActiveWorkbook.Close True
        Dateiname = Dir
    Loop
End Sub

Falls Du Textdateien (z.B. .dat) in Excel importieren möchtest, kannst Du das folgende Makro verwenden:

Sub Makro1()
    Dim strVerzeichnis As String
    Dim Dateiname As String
    strVerzeichnis = "c:\temp" ' Ändere den Pfad entsprechend
    Dateiname = Dir(strVerzeichnis & "*.dat")

    Do While Dateiname <> ""
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;" & strVerzeichnis & Dateiname, Destination:=Range("A1"))
            .FieldNames = True
            .Refresh BackgroundQuery:=False
        End With
        ActiveWorkbook.Close True
        Dateiname = Dir
    Loop
End Sub

Häufige Fehler und Lösungen

Ein häufiger Fehler beim Ausführen von VBA-Skripten ist, dass Du das Öffnen der Dateien auskommentierst. Stelle sicher, dass die Zeile Workbooks.Open nicht auskommentiert ist, wenn Du die Dateien öffnen möchtest.

Wenn das Makro nicht funktioniert, überprüfe auch, ob der Pfad korrekt ist und ob die Dateien wirklich existieren. Eine weitere häufige Fehlerquelle sind falsche Dateiendungen.


Alternative Methoden

Eine alternative Methode, um Dateien nacheinander zu öffnen, ist die Verwendung von Schleifen in Kombination mit der FileSystemObject-Bibliothek. Hier ein Beispiel:

Sub OpenFilesWithFSO()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim strVerzeichnis As String
    strVerzeichnis = "D:\Eigene Dateien\Hajo\" ' Ändere den Pfad entsprechend
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(strVerzeichnis)

    For Each file In folder.Files
        If Right(file.Name, 4) = ".xls" Then
            Workbooks.Open file.Path
            ' Hier kannst Du Deine Bearbeitungen an den geöffneten Dateien vornehmen
            ActiveWorkbook.Close True
        End If
    Next file
End Sub

Praktische Beispiele

Nehmen wir an, Du möchtest alle Excel-Dateien in einem Ordner öffnen, einige Daten bearbeiten und sie dann wieder schließen. Hier ist ein einfaches Beispiel, wie das in Deinem Makro aussehen könnte:

Sub BearbeitenUndSchließen()
    Dim strVerzeichnis As String
    Dim Dateiname As String
    strVerzeichnis = "D:\Eigene Dateien\Hajo\"
    Dateiname = Dir(strVerzeichnis & "*.xls")

    Do While Dateiname <> ""
        Dim wb As Workbook
        Set wb = Workbooks.Open(Filename:=strVerzeichnis & Dateiname)
        ' Beispiel für eine Bearbeitung: Werte in Zelle A1 ändern
        wb.Sheets(1).Range("A1").Value = "Neuer Wert"
        wb.Close SaveChanges:=True
        Dateiname = Dir
    Loop
End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste Deine Makros in einer sicheren Umgebung, um Datenverlust zu vermeiden.
  • Dokumentiere Deine Makros, um die Nachvollziehbarkeit zu erhöhen, insbesondere wenn Du sie mit anderen teilst.
  • Berücksichtige, dass die QueryTables-Methode eine komplexere Struktur erfordert, wenn Du mit verschiedenen Textdateiformaten arbeitest.

FAQ: Häufige Fragen

1. Warum öffnet mein Makro keine Dateien?
Überprüfe, ob der Pfad korrekt ist und die Dateien existieren. Stelle sicher, dass die Zeile zum Öffnen der Dateien nicht auskommentiert ist.

2. Kann ich auch andere Dateitypen öffnen?
Ja, passe einfach die StrTyp-Variable an, um andere Dateiformate wie .txt oder .csv zu unterstützen.

3. Wie kann ich Fehler im Makro debuggen?
Nutze die F8-Taste, um das Makro Schritt für Schritt auszuführen. So kannst Du genau sehen, wo es möglicherweise Probleme gibt.

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