bestimmte Zeile aus mehreren Dateien in eine Tabelle kopieren
#1
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
Top
#2
Hallo Fabian,

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

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Fabian1208
Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • Fabian1208
Top
#4
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 :)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste