Clever-Excel-Forum

Normale Version: bestimmte Zeile aus mehreren Dateien in eine Tabelle kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

da es in letzter Zeit immer mal wieder zu mehrstündigen Suchaktionen kam, habe ich entschlossen mich hier anzumelden.


Vorweg: VBA = keinerlei Erfahrung/Ahnung, trotzdem versuche ich mit veröffentlichten Makros meine Probleme zu lösen und an bestimmten Stellen durch Ausprobieren an mein Ziel zu gelangen :19:
Da ich aber in letzter Zeit öfter mal VBA benutzen musste, versuche ich hier mein Wissen zu erweitern und hoffe auf Hilfe und Tipps.

Zu meinem Problem: Eigentlich recht Simpel, ich habe x Dateien in einem Verzeichnis, alle fortlaufend Bsp.: Kunde0002, Kunde0003, Kunde0004....
Jede Datei besteht nur aus einer Zeile A1:K1, diese möchte ich alle in einer Datei untereinander aufgelistet haben.
Am besten in einer Tabelle zum Filtern. Zeile A1:K1 sind Spaltenüberschriften (Kunde, Ort, PLZ, Info...), sprich ab Zeile 2 sollen Einträge folgen.

Ich habe mal mit dem Rekorder begonnen:

Code:
Sub Kopieren()
'
' Kopieren Makro
'
   Workbooks.Open Filename:= _
       "T:\90 - Ablage\Excel\Kunde0002.xlsx"
   Rows("1:1").Select
   Selection.Copy
   Windows("Hauptdatei.xlsx").Activate
   Range("A2").Select
   ActiveSheet.Paste
   Workbooks.Open Filename:= _
    "T:\90 - Ablage\Excel\Kunde0003.xlsx"
   Rows("1:1").Select
   Application.CutCopyMode = False
   Selection.Copy
   Windows("Hauptdatei.xlsx").Activate
   Range("A3").Select
   ActiveSheet.Paste
   Workbooks.Open Filename:= _
    "T:\90 - Ablage\Excel\Kunde0004.xlsx"
   Rows("1:1").Select
   Application.CutCopyMode = False
   Selection.Copy
   Windows("Hauptdatei.xlsx").Activate
   Range("A4").Select
   ActiveSheet.Paste
End Sub
Wie automatisiere ich die selbstständige Auswahl der Dateien? Sprich Excel braucht keine Namen der Dateien Bsp.: 0002, 0003, 0004... sondern weiß dass ist mein Ordner, hier benutze ich jede Datei nach der nächsten.
Und wie bestimme ich nach dem Einfügen in Zeile 2 die nächste Zeile zu benutzen. Sprich immer +1 Zeile runter nach dem einfügen.
Ich brauche also eine Schleife denke ich soweit bin ich schonmal. :05:

Vielen Dank im voraus

Viele Grüße
Hallo Fabian,

das hier vielleicht: http://www.clever-excel-forum.de/thread-...l#pid54482

Gruß Uwe
Hallo

unter der Voraussetzung, dass das Tabellenblatt der einzelnen
Kundendateien "Tabelle1" heißt
könnte es so aussehen
ungetestet aus der Datei "Hauptdatei" aus dem Zielblatt zu starten

Code:
Sub kopieren()
   Dim oQuelle As Object
   Dim strDatei As String
   Dim strPfad As String
   Dim lngZiel As Long
   Application.ScreenUpdating = False
   strPfad = "T:\90 - Ablage\Excel\"
   lngZiel = 2
   strDatei = Dir(CStr(strPfad & "*.xl*")) 'Alle Excel Dateien
   Do While strDatei <> ""
       Set oQuelle = Workbooks.Open(strPfad & strDatei, False, True)
       Cells(lngZiel, 1).Resize(1, 11).Value = _
               oQuelle.Sheets("Tabelle1").Cells(1, 1).Resize(1, 11).Value
       oQuelle.Close False
       strDatei = Dir()
       lngZiel = lngZiel + 1
   Loop
   Application.ScreenUpdating = True
   Set oQuelle = Nothing
End Sub


MfG Tom
Vielen Dank euch beiden für die schnellen Antworten !

 @Uwe da gibts bestimmt was, was mir in Zukunft helfen wird, vorallem auch mit den Erklärungen am Rand !

@Tom Danke für die Vorlage, habe sie getestet und sie funktioniert!


Noch eine angenehme Woche :)