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

Forumthread: Alle Dateien eines Ordners importieren

Alle Dateien eines Ordners importieren
03.02.2016 15:55:41
Tanja
Hi,
ich habe ein Problem, bei dem ich selber nicht weiterkomme und hoffe, jemand hier kann mir weiterhelfen:
Ich möchte gerne per VBA alle Excel-Dateien eines Ordners bzw. deren Daten auslesen und in einer Datei speichern.
Alle Dateien haben den gleichen Spaltenaufbau.
Die Idee ist, dass ich von einer "Master-Datei" auf einen Ordner zugreife und dann einfach alle Daten aus allen anderen Excel-Dateien im gleichen Ordner auslese und in die Master-Datei kopiere, damit ich dort später Summen etc. berechnen kann (alle Dateien haben den gleichen Aufbau und jeweils nur ein Blatt).
Kann mir irgendjemand damit weiterhelfen und mir einen Lösungsansatz oder ein Beispiel dazu nennen ?
Ich habe leider keinen Beispiel-Code, weil ich nicht weiss, wo ich hier ansetzen soll. Das Hauptproblem dabei ist das Finden und Auslesen der anderen Dateien...
Vielen Dank für Eure Hilfe.
LG,
Tanja

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: inflationäre Frage
03.02.2016 17:17:12
Tanja
Hallo Rudi,
danke für den Link - ich sehe hier keine Lösung zu dem beschriebenen Problem.
Bisher habe ich folgenden Code zur Auswahl des Ordners - was mir nun noch fehlt ist der Loop durch alle Excel-Dateien in diesem Ordner und das Kopieren der Daten aus jeder dieser Dateien, jeweils Sheet1, Spalten A bis F.
Sub SelectImportFolder()
Dim varAppShell As Object
Dim varDirectory As Variant
Dim varPath As String
Set varAppShell = CreateObject("Shell.Application")
Set varDirectory = varAppShell.BrowseForFolder(0, "Please choose folder with files to  _
import:", &H1000, 17)
On Error Resume Next
varPath = varDirectory.items().Item().Path
If varPath = "" Then Exit Sub
MsgBox varPath
On Error GoTo 0
End Sub
LG,
Tanja

Anzeige
AW: inflationäre Frage
04.02.2016 12:23:12
Rudi
Hallo,
Sub SelectImportFolder()
Dim varAppShell As Object
Dim varDirectory As Variant
Dim varPath As String
Dim sFile As String, wkb As Workbook
Application.ScreenUpdating = False
Set varAppShell = CreateObject("Shell.Application")
Set varDirectory = varAppShell.BrowseForFolder(0, _
"Please choose folder with files to import:", &H1000, 17)
On Error Resume Next
varPath = varDirectory.items().Item().Path
On Error GoTo 0
If varPath  "" Then
sFile = Dir(varPath & "\*.xls*")
Do While sFile  ""
Set wkb = Workbooks.Open(varPath & "\" & sFile)
wkb.Sheets(1).Range("A:F").Copy _
ThisWorkbook.Sheets(1).sells(Rows.Count, 1).End(xlUp).Offset(1)
wkb.Close False
sFile = Dir
Loop
End If
End Sub
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Alle Dateien eines Ordners importieren


Schritt-für-Schritt-Anleitung

  1. Ordner auswählen: Du musst einen Ordner auswählen, aus dem die Excel-Dateien importiert werden sollen. Dazu kannst du den folgenden VBA-Code verwenden:

    Sub SelectImportFolder()
        Dim varAppShell As Object
        Dim varDirectory As Variant
        Dim varPath As String
        Set varAppShell = CreateObject("Shell.Application")
        Set varDirectory = varAppShell.BrowseForFolder(0, "Bitte wähle den Ordner mit den Dateien aus:", &H1000, 17)
        On Error Resume Next
        varPath = varDirectory.items().Item().Path
        If varPath = "" Then Exit Sub
        MsgBox varPath
        On Error GoTo 0
    End Sub
  2. Daten aus Excel-Dateien auslesen: Um alle Excel-Dateien in diesem Ordner durchzulaufen und die Daten auszulesen, kannst du den folgenden Code verwenden:

    Sub ImportAllExcelFiles()
        Dim varAppShell As Object
        Dim varDirectory As Variant
        Dim varPath As String
        Dim sFile As String, wkb As Workbook
        Application.ScreenUpdating = False
        Set varAppShell = CreateObject("Shell.Application")
        Set varDirectory = varAppShell.BrowseForFolder(0, "Bitte wähle den Ordner mit den Dateien aus:", &H1000, 17)
        On Error Resume Next
        varPath = varDirectory.items().Item().Path
        On Error GoTo 0
        If varPath <> "" Then
            sFile = Dir(varPath & "\*.xls*")
            Do While sFile <> ""
                Set wkb = Workbooks.Open(varPath & "\" & sFile)
                wkb.Sheets(1).Range("A:F").Copy _
                ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1)
                wkb.Close False
                sFile = Dir
            Loop
        End If
    End Sub
  3. Ausführen: Führe die ImportAllExcelFiles-Subroutine aus, um alle Daten aus den Excel-Dateien im gewählten Ordner zu importieren.


Häufige Fehler und Lösungen

  • Fehler: "Ordner nicht ausgewählt"
    Lösung: Stelle sicher, dass du den Ordner korrekt auswählst und dass der Pfad nicht leer ist.

  • Fehler: "Datei kann nicht geöffnet werden"
    Lösung: Überprüfe, ob die Excel-Dateien im richtigen Format (z.B. .xls, .xlsx) vorliegen und nicht beschädigt sind.

  • Fehler: "Range nicht gefunden"
    Lösung: Stelle sicher, dass das Blatt in der Quelldatei tatsächlich Daten enthält und dass die Spalten A bis F vorhanden sind.


Alternative Methoden

Eine weitere Möglichkeit, alle Dateien eines Ordners zu importieren, ist die Verwendung von Power Query. Damit kannst du auch Daten aus mehreren Excel-Dateien in einem Schritt zusammenführen.

  1. Öffne Excel und gehe zu Daten > Daten abrufen > Aus Datei > Aus Ordner.
  2. Wähle den gewünschten Ordner aus und klicke auf OK.
  3. Wähle die Dateien aus, die du importieren möchtest, und lade sie in eine Tabelle.

Praktische Beispiele

Wenn du regelmäßig Daten aus einem Ordner importieren musst, kann die Verwendung von VBA sehr hilfreich sein. Hier ist ein Beispiel zur Verwendung des obigen Codes:

  • Ziel: Alle Verkaufsdaten aus Excel-Dateien eines Ordners in eine Master-Datei konsolidieren.
  • Anwendung: Nutze den VBA-Code, um alle Excel-Dateien im Ordner "Verkaufsdaten" auszulesen und die Daten in die Master-Datei zu kopieren.

Tipps für Profis

  • Automatisierung: Du kannst den Importprozess automatisieren, indem du die Subroutine an einen Button in deiner Excel-Datei bindest.
  • Fehlerbehandlung: Füge zusätzliche Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme beim Import zu lösen.
  • Datenvalidierung: Überprüfe die importierten Daten, um sicherzustellen, dass sie den erwarteten Standards entsprechen.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Excel-Dateien importieren?
Du kannst den Dir-Befehl anpassen, um nur Dateien mit bestimmten Namen oder Formaten auszuwählen.

2. Funktioniert der Code in allen Excel-Versionen?
Ja, der bereitgestellte VBA-Code sollte in Excel 2010 und späteren Versionen funktionieren.

3. Kann ich Daten aus anderen Dateiformaten importieren?
Ja, du kannst den Code anpassen, um auch Daten aus CSV-Dateien oder anderen unterstützten Formaten auszulesen.

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