Microsoft Excel

Herbers Excel/VBA-Archiv

Daten aus mehrereren Dateien im Ordner auslesen

Betrifft: Daten aus mehrereren Dateien im Ordner auslesen von: Sebastian
Geschrieben am: 25.11.2015 13:06:01

Hallo Leute,

ich bin zuständig für die Prozessoptimierung bei meiner Firma und habe mir ein kleines Programm geschrieben, um die Daten visualisiert darzustellen. Alles klappt, jedoch ist es so, dass ich jeden Morgen eine Excel-Liste mit den Daten, die ich später händisch per Copy/Paste (Beispiel als Anhang dabei) bekomme, in der die Auswertungen für alle Produktionslinien stehen. Dabei stehen die Auswertungen für die 8 Linie direkt untereinander. Die Anzahl der Daten pro Linie variiert je nach Anzahl der Schichten. Dazu kommt noch, dass ich die Daten tagtäglich erhalte. Dadurch bekomme ich dann Datensätze, die doppelt vorkommen, d.h. das letzte Datum für die Linie wird rausgelöscht und das aktuelle wird neu aufgenommen. Diese Excel-Listen habe ich in meinem Ordner "Maschinenlaufzeit" nach Datum fortlaufend nummeriert.
Die Daten kopiere ich dann und füge Sie in ein Tabellenblatt in mein Programm ein.

Jetzt zur eigentlichen Frage: gibt es eine Möglichkeit, dass mein Programm diese Excellisten aus meinem Ordner öffnet und ließt, diese dann kopiert und dann je nach Linie ans untere Ende der Tabelle setzt? Doppelte Datensätze sollen dabei automatisch vermieden werden.
Hoffe, dass ich das einigermaßen deutlich erklären konnte und würde mich über jede Hilfe freuen.

Gruß Basti

https://www.herber.de/bbs/user/101798.xlsx

  

Betrifft: AW: Daten aus mehrereren Dateien im Ordner auslesen von: Matthias
Geschrieben am: 28.11.2015 01:20:05

Hallo Sebastian,

das ist durchaus möglich. Das Grundgerüst für das Auswählen und Öffnen kann ich dir hier sogar schon geben. Die genauen Details von wo nach wo unter welchen Kriterien kopiert wird, musst du jedoch noch klären:

Sub DatenAuslesen()
Dim myFiles, x As Long
Dim wkbQ As Workbook    ' jeweils aktive Quelle

Const sStandardverzeichnis = "D:\Eigene Dateien\"

Application.ScreenUpdating = False

' Standard-Verzeichnis festlegen
ChDrive Left(sStandardverzeichnis, 1)
ChDir sStandardverzeichnis

' Dateien öffnen
myFiles = Application.GetOpenFilename("Excel-Arbeitsmappe *.xls*,*.xls*", 1, _
            "Bitte wählen Sie die Datei(en) aus!", , True)
If IsArray(myFiles) = False Then GoTo Grundeinstellungen '>> Abbrechen gewählt

For x = LBound(myFiles) To UBound(myFiles)
    Set wkbQ = Workbooks.Open(myFiles(x), , True)
    
    ' deine Aktionen um Werte zu kopieren
    ' ...
    
    wkbQ.Close
Next x

' doppelte Werte aussortieren
' ...

Grundeinstellungen: '<<
Application.ScreenUpdating = True
End Sub
Deine Zielmappe kannst du dabei mit "ThisWorkbook" und die gerade geöffnete Mappe mit "wkbQ" (Quelle) ansprechen. Damit könnte ein Kopiervorgang zum Beispiel so aussehen:
    wkbQ.Sheets("Tabelle1").Range("A1:F10").Copy _
        Destination:=ThisWorkbook.Sheets("TabelleA").Range("A20")
lg Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Daten aus mehrereren Dateien im Ordner auslesen"