Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

alle Dateien eines Verzeichnisses auswerten

alle Dateien eines Verzeichnisses auswerten
10.12.2015 12:20:28
stormlamp
Hallo Zusammen,
in einem Verzeichnis bspw. "August 2015" gibt es für jeden Tag eine Auswertungsdatei. Aus diesen ganzen Dateien möchte ich einzelne Daten extrahieren, die immer in der gleichen Mappe im gleichen Feld stehen. Alle Dateien in einem Verzeichnis sind identisch aufgebaut.
Beispiel:
In einer neuen Tabelle soll in A1 der Name der ersten Datei stehen, in B1 das Feld F3 von Mappe "Ergebnisse1" in Feld C1 das Feld F7 von der Mappe "Ergebnisse1" in Feld D1 das Feld G20 von Mappe "Ergbnisse2" usw.
In der Zeile 2 der Neuen Datei (A2,B2,C2...) sollen entsprechend die Daten der zweiten Datei in dem Verzeichnis sein. usw.
Geht so etwas?
Freundliche Grüße
Hans

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alle Dateien eines Verzeichnisses auswerten
10.12.2015 13:24:37
Michael
Hallo Hans!
Geht so etwas?
Ja, grds. wäre nur auch interessant von wievielen Dateien wir hier sprechen (zwecks Laufzeit etc.).
gibt es für jeden Tag eine Auswertungsdatei
Ich gehe davon aus, dass Du Excel-Dateien meinst. Ich habe jetzt mal .xlsx-Dateien angenommen (Arbeitsmappen ohne Makros).
In einer neuen Tabelle
Bei mir ist das jetzt mal das aktive Blatt jener Mappe aus der das Makro aufgerufen wird.
Feld F3 von Mappe "Ergebnisse1"
"Mappe" Egebnisse innerhalb einer Datei verstehe ich nicht. Ich nehme an, Dateien entspricht Arbeitsmappen (= Excel-Dateien) und Mappe "Ergebnisse1" etc. soll wohl Tabellenblatt "Ergebnisse1" etc. bedeuten.
Das kann zB so funktionieren (alles in einem allgemeinen Modul): Den Pfad bei der Konstante musst Du auf Deine Gegebenheiten ändern!
Public Const cPfad As String = "U:\Test\August 2015" & "\" 'Pfad anpassen!!!
Sub VerzeichnisAuswerten()
Dim strDatei As String
strDatei = Dir(cPfad & "*.xlsx")
Do While strDatei  ""
WerteAuslesen (strDatei)
strDatei = Dir
Loop
End Sub
Sub WerteAuslesen(strDatei As String)
Dim wbZiel As Workbook
Dim wbQuelle As Workbook
Application.ScreenUpdating = False
Set wbZiel = ThisWorkbook
Workbooks.Open Filename:=cPfad & strDatei
Set wbQuelle = ActiveWorkbook
With wbZiel.ActiveSheet
.Range("A" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1).Value = strDatei
.Range("B" & .Cells(.Rows.Count, 2).End(xlUp).Row + 1).Value = wbQuelle.Sheets(" _
Ergebnisse1").Range("F3").Value
.Range("C" & .Cells(.Rows.Count, 3).End(xlUp).Row + 1).Value = wbQuelle.Sheets(" _
Ergebnisse1").Range("F7").Value
.Range("D" & .Cells(.Rows.Count, 4).End(xlUp).Row + 1).Value = wbQuelle.Sheets(" _
Ergebnisse2").Range("G20").Value
End With
wbQuelle.Close False
Application.ScreenUpdating = True
End Sub
Passt?
LG
Michael

Anzeige
AW: alle Dateien eines Verzeichnisses auswerten
10.12.2015 13:44:40
stormlamp
Hallo Michael,
es klappt noch nicht ganz.
Beim Start des Makros wird der Name der ersten datei in Zelle A2 geschrieben.
Danach meldet sich jedoch bei der Zeile
  • .Range("B" & .Cells(.Rows.Count, 2).End(xlUp).Row + 1).Value = wbQuelle.Sheets(" _ Ergebnisse1").Range("A2").Value

  • der Debugger "Index außerhalb des gültigen Bereichs".
    Freundliche Grüße
    Hans

    AW: alle Dateien eines Verzeichnisses auswerten
    10.12.2015 13:57:31
    stormlamp
    Hallo Michael,
    war mein Fehler beim Zusammenziehen der VBA-Zeilen von zweien in eine.
    Läuft nun bestens, danke.
    Viele Grüße
    Klaus

    AW: Freut mich, Danke f d Rückmeldung! owT
    10.12.2015 14:00:57
    Michael

    Funktioniert noch nicht ganz
    10.12.2015 15:41:21
    stormlamp
    Hallo Michael,
    ein kleiner Fehler ist leider noch im Script:
    Die Felder werden nicht immer in der richtigen Zeile eingetragen.
    Wenn es Leerfelder gibt, wird der Wert in das unterste freie Feld der jeweiligen Spalte eingetragen, auch wenn dieses Feld aus einer anderen Date stammt (der Dateiname steht ja in Spalte A).
    Es wäre prima, wenn das noch korrigiert werden könnt.
    Viele Grüße
    Hans

    Anzeige
    AW: Achso...
    10.12.2015 15:46:11
    Michael
    Hans,
    ...die berühmten Leerzellen ;-) - davon war ja nie die Rede.
    Nein, dann mit kleinen Änderungen so:
    Public Const cPfad As String = "U:\Test\August 2015" & "\" 'Pfad anpassen!!!
    Sub VerzeichnisAuswerten()
    Dim strDatei As String
    strDatei = Dir(cPfad & "*.xlsx")
    Do While strDatei  ""
    WerteAuslesen (strDatei)
    strDatei = Dir
    Loop
    End Sub
    Sub WerteAuslesen(strDatei As String)
    Dim wbZiel As Workbook
    Dim wbQuelle As Workbook
    Dim lngLeZeile As Long
    Application.ScreenUpdating = False
    Set wbZiel = ThisWorkbook
    Workbooks.Open Filename:=cPfad & strDatei
    Set wbQuelle = ActiveWorkbook
    With wbZiel.ActiveSheet
    lngLeZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    .Range("A" & lngLeZeile).Value = strDatei
    .Range("B" & lngLeZeile).Value = wbQuelle.Sheets("Ergebnisse1").Range("F3").Value
    .Range("C" & lngLeZeile).Value = wbQuelle.Sheets("Ergebnisse1").Range("F7").Value
    .Range("D" & lngLeZeile).Value = wbQuelle.Sheets("Ergebnisse2").Range("G20").Value
    End With
    wbQuelle.Close False
    Application.ScreenUpdating = True
    End Sub
    
    LG
    Michael

    Anzeige
    Jetzt funktionierts!
    10.12.2015 16:10:32
    stormlamp
    Hallo Michael,
    danke, jetzt passen die Werte zur Datei. Das spart mir extrem viel Arbeit!
    Viele Grüße
    Hans

    AW: So soll es sein! owT
    10.12.2015 16:12:47
    Michael

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige