Microsoft Excel

Herbers Excel/VBA-Archiv

30 Tabellen in ein Blatt untereinander kopieren | Herbers Excel-Forum


Betrifft: 30 Tabellen in ein Blatt untereinander kopieren von: Bernhard
Geschrieben am: 28.01.2012 21:24:38

Hallo liebe Excel-Gemeinde,

ich habe 2 Stunden im Forum gesucht, aber leider erfolglos. Daher bitte ich nunmehr um Eure Hilfe.

In einem Verzeichnis "B:\Quelldaten" liegen 30 Dateien mit jeweils 1 Blatt. Die Dateien - jede hat ein Blatt - weisen alle eine gleiche Spalten-Struktur auf. Lediglich die Datenzeilen können von 50 bis zu 400 Zeilen variieren. Diese 30 Dateien bzw. Blätter sollen bitte alle in einer Datei "Zusammenfassung" untereinander kopiert werden.

Ergänzung (nice to have :-)):
Super wäre es, wenn vor dem Herauskopieren in diesen 30 Tabellenblättern in der Zelle A29 bis "Ende used Range" (also in soviele Zeilen, wie die Tabelle lang ist) ein Wert aus der Zelle F15 kopiert wird (dort steht die Kostenstelle).

Danke vorab.
LG, Bernhard

  

Betrifft: AW: 30 Tabellen in ein Blatt untereinander kopieren von: JoWe
Geschrieben am: 28.01.2012 23:10:05

Hallo Bernhard,
ein Versuch:

Option Explicit
Sub getData()
    Dim wb As Workbook
    Dim sh1 As Worksheet
    Dim aname, name1, pfad1, special As String
    Set wb = ThisWorkbook
    Set sh1 = wb.Sheets(1)
    aname = wb.Name
    pfad1 = wb.Path & "\"
    With sh1
        .Cells.Delete
        .Cells(1, 2) = "ID"
        .Cells(1, 3) = "Nummer"
        name1 = Dir(pfad1, vbNormal)
        Do While name1 <> "" And name1 <> aname
            If Right(name1, 4) = ".xls" Then
                Workbooks.Open Filename:=pfad1 & name1
                special = Sheets(1).Range("F15")
                Sheets(1).Range("B29:E" & Sheets(1).Range("b65536").End(xlUp).Row).Copy
                Windows(aname).Activate
                .Cells(.Range("b65536").End(xlUp).Row + 1, 8) = special
                .Cells(.Range("b65536").End(xlUp).Row + 1, 2).PasteSpecial Paste:=xlValues
                Windows(name1).Activate
                ActiveWorkbook.Close savechanges:=False
            End If
            name1 = Dir
        Loop
        .Cells.Select
        .Cells.EntireColumn.AutoFit
        .Cells(1, 1).Select
    End With
End Sub

Gruß
Jochen
Code eingefügt mit VBA in HTML 1.2
http://vbahtml.origo.ethz.ch


  

Betrifft: AW: 30 Tabellen in ein Blatt untereinander kopieren von: Bernhard
Geschrieben am: 29.01.2012 11:29:49

Hallo Jochen,
vielen Dank f.d. Code, leider funktioniert er aber nicht. Es werden die Blätter im Verzeichnis "B:\Quelldaten" zwar aufgerufen, aber es geschieht nichts mit diesen. Es werden nur folgende zwei Zeilen in der Datei "Zusammenfassung", in der der Code steht, erzeugt:

ID Nummer
97 7XU2QON1RQO0REEWE20VM151O WAHR WAHR
105 7XU2QON1RQO0REEWE20VM151O WAHR WAHR

https://www.herber.de/bbs/user/78642.xlsm

Würdest du bitte noch mal einen Blick auf den Code werfen?

Grüße und vielen Dank, Bernhard


  

Betrifft: AW: 30 Tabellen in ein Blatt untereinander kopieren von: JoWe
Geschrieben am: 29.01.2012 17:04:00

Hallo Bernhard.

lade doch mal bitte eine der 30 Dateien hoch, dann muss ich nicht weiter im Dunkeln stochern...
und komplettiere Deine Sammeltabelle mal mit einem Beispiel für das Ergebnis und lade die dann auch noch hoch.
Hier ein paar weitere Anmerkungen:
Aus welcher Tabelle heraus möchtest Du den Code starten?
Ab welcher Zeile sollen Daten importiert werden?
Welche Palten sollen dabei berücksichtigt werden?
Das alles ging aus Deiner Fragestellung nicht so richtig hervor.
Du hattest nichts zu Überschriften gesagt, daher die Idee mit "ID" und "Nummer".
Weiter war nichts darüber bekannt in wecler Zeile/Spalte der Import starten sollte.
Die hier aus Deiner Sicht notwendigen Änderungen dürften doch aber nicht allzu vile Problem aufgeworfen haben, oder?!
Gruß
Jochen


  

Betrifft: AW: 30 Tabellen in ein Blatt untereinander kopieren von: Bernhard
Geschrieben am: 29.01.2012 18:13:14

Hallo Jochen.

Gerne 2 Dateien sowie deine Fragen (vielen Dank schon mal im voraus):
Ich würde gerne aus der Datei "Zusammenfassung.xls" heraus die Zusammenfassung starten.
Ab der Zeile 29 sollen die Daten importiert werden
Die Spalten A-F sollen importiert werden
Alle Dateien liegen in dem Ordner "B:\Quelldaten"

2 Beispiels-Dateien, die zusammengefügt werden sollen
https://www.herber.de/bbs/user/78645.xls
https://www.herber.de/bbs/user/78646.xls

Die Datei "Zusammenfassungs.xls" nochmals:
https://www.herber.de/bbs/user/78647.xlsm


Herzliche Grüße aus Bayern
Bernhard




  

Betrifft: AW: 30 Tabellen in ein Blatt untereinander kopieren von: JoWe
Geschrieben am: 29.01.2012 19:53:49

Hallo Bernhard,
hier noch mal ein Versuch.
Diesmal lade ich die geänderte Arbeitsmappe hoch:
https://www.herber.de/bbs/user/78649.xls
Ich hoffe esklappt jetzt.
Gruß
Jochen


  

Betrifft: @Jochen ... Tauschend Dank von: Bernhard
Geschrieben am: 29.01.2012 20:02:16

Hallo Jochen.
Perfekt. Klappt wunderbar. Vielen herzlichen Dank für deine Mühen. Das hätte ich wohl nie hinbekommen. Da hast du mir sehr geholfen und mir viel Arbeit des mühseligen Kopierens erspart.

Liebe Grüße aus Bayern

Bernhard


Beiträge aus den Excel-Beispielen zum Thema "30 Tabellen in ein Blatt untereinander kopieren"