Mehrere Excel Tabellen zusammenführen

Hallo zusammen,

ich habe vom Prinzip her die selbe Fragestellung wie Edision im Beitrag
„100 Excel Tabellen zusammenführen“.
Daher hoffe ich, dass mir auch geholfen kann.

Ich generiere jede Woche 40 Exceltabellen, die ich zu einer zusammenführen möchte.

Nötig wäre nur ein copy and paste von der dritten Zeile an bis zu der letzten Zeile wo nix mehr drinne steht.

Diese Vorgehensweise ist für alle Tabellen gleich.

Die Tabellen Namen und Spaltenanzahl sind immer die gleichen, nur die Anzahl der Zeilen kann variieren.

Nun die Frage : „Ist mir auch leicht zu helfen?“

Habe es mit Makro prbiert aber kein gewünschten Erfolg gehabt.
Mit VBA kenne ich mich sehr wenig aus.

Gruß Marcus

Tut mir leid, da kann ich Dir nicht weiterhelfen.

MfG

Hallo Marcus,
leider kenne ich mich mit VBA viel zu wenig aus.
Die Beschreibung Deines Problems sagt mir auch zu wenig. Solltest Du allerdings die einzelnen Exceltabellen in eine Datei mit 40 Blättern zusammenführen wollen, dann müsstest Du nur in der jeweiligen Tabelle unten auf das Blatt einen Rechtsklick mach und es dann verschieben. Sind alle Tabellen in einer mit 40 Blättern, dann kannst Du unten alle Blätter anklicken (zuerst das linke und dann mit der Shifttaste das rechte) und die ersten drei Zeilen gleichzeitig löschen.
Gruß
Mike130

Ich generiere jede Woche 40 Exceltabellen, die ich zu einer
zusammenführen möchte.

Nötig wäre nur ein copy and paste von der dritten Zeile an bis
zu der letzten Zeile wo nix mehr drinne steht.

Diese Vorgehensweise ist für alle Tabellen gleich.

Die Tabellen Namen und Spaltenanzahl sind immer die gleichen,
nur die Anzahl der Zeilen kann variieren.

Nun die Frage : „Ist mir auch leicht zu helfen?“

Habe es mit Makro prbiert aber kein gewünschten Erfolg gehabt.
Mit VBA kenne ich mich sehr wenig aus.

Gruß Marcus

Hallo Marcus
ohne VBA kann ich Dir nicht helfen.
Mit VBA kannst Du die variable Zeilenanzahl markieren, kopieren und in die Stammtabelle kopieren, und zwar an der Stelle, wo noch keine Zeilen belegt sind.
Kann heute nicht ausführlicher antworten, aber morgen stelle ich ein paar Code-Snippets ein.
Gruß Klaus

Hallo Marcus,

würde dir gerne helfen, aber leider bin ich ab morgen bis Montag im Urlaub. Wenn du solange warten kannst meld dich nochmal, ansonsten bitte an jemanden anderen wenden.

Gruß Christian

PS: Falls ich dir helfen soll: Liegen alle Dateien in einem Verzeichnis? Wie viele Blätter pro Datei?

Hallo,
ich habe zurzeit Urlaub und nur mein htc-smartphone (excelfrei:frowning: ) zur Verfügung.
Sorry
Grüße von der Insel Föhr.

Ralf

Montag im Urlaub. Wenn du solange warten kannst meld dich
nochmal, ansonsten bitte an jemanden anderen wenden.

Gruß Christian

PS: Falls ich dir helfen soll: Liegen alle Dateien in einem
Verzeichnis? Wie viele Blätter pro Datei?

Hallo zusammen,

bin über jede Hilfe dankbar!
Kann natürlich auch warten bis alle aus dem Urlaub da sind!

Die Dateien liegen zwar in einem Verzeichnis aber dort jeweils in Unterordnern. Könnte aber sicherlich dies auch ändern wenn dies ein großes Problem darstellen sollte!

Gruß Marcus

Hallo,

wenn dies kein Problem ist VBA einzubinden, nutze ich auch gern diese Variante!
Gruß Marcus

Ich generiere jede Woche 40 Exceltabellen, die ich zu einer zusammenführen möchte.
Nötig wäre nur ein copy and paste von der dritten Zeile an bis zu der letzten Zeile wo nix mehr drinne steht.
Diese Vorgehensweise ist für alle Tabellen gleich.
Die Tabellen Namen und Spaltenanzahl sind immer die gleichen, :nur die Anzahl der Zeilen kann variieren.

Nun die Frage : „Ist mir auch leicht zu helfen?“

Hallo Marcus,

tut mir leid, dazu kenne ich mich zu wenig aus bzw. fehlt mir momentan die zeit, mir das genauer zu überlegen bzw. anzuschauen - hoffe für Dich, dass Du schon die Lösung gefunden hast.

MfG
Robert

Hallo,

wenn dies kein Problem ist VBA einzubinden, nutze ich auch
gern diese Variante!
Gruß Marcus

Hallo Marcus,
zum Anfang eine Übersicht und zum Einüben das Wechslen der Arbeitsmappen:

  1. Dateien stehen im aktuellen Verzeichnis (kann über VBA bestimmt werden)
  2. Annahme: 2 Arbeitsmappen mit Daten
  3. Mappe1 (hier „Stammblatt“): Soll Kopien auf dem
  4. geöffneten Arbeitsblatt aufnehmen
  5. Mappe2 (hier „Vorlage“): Enthält mehrere Arbeitsblätter,
  6. deren Daten in das Stammblatt kopiert werden sollen
  7. Beide Mappen sind bereits geöffnet

Dem VBA-Code kannst Du ein Makro und eine Tastenbelegung zuordnen.

Wenn alles soweit klar ist, machen wir weiter.


Public n As String
Public m As String

Sub DatenHolen()
On Error Resume Next
Dim wks1 As Worksheet 'für Stammblatt
Dim wks2 As Worksheet 'für Vorlage
Dim n As String 'für Arbeitsblatt im Stammblatt
Dim m As String 'für akt. Arbeitsblatt in Vorlage
wks1 = „Stammblatt“
wks2 = „Vorlage“

'Zum Stammblatt wechseln
Workbooks(wks1).Activate
m = ActiveSheet.Name 'Stammblatt merken

'Zur Vorlage wechseln
Workbooks(wks2).Activate
n = ActiveSheet.Name 'Aktuelles Arbeitsblatt wählen

'hier Daten kopieren

'Zum Stammblatt wechseln
Workbooks(wks1).Activate
m = ActiveSheet.Name

'hier Daten am Ende einfügen (unter den vorhandenen Daten)

'Zur Vorlage zurück
'nächstes Arbeitsblatt wählen, Arbeitsblatt merken
'wenn letztes Blatt Programm beenden

EndSub

Lieber Marcus,
ohne VBA geht da gar nichts. Anbei ein grundsätzlicher Code, der folgendes voraussetzt:

Sheet „PARAM“
Zelle A3: Pfad der Quelldateien z.B. C:\MeineArbeit\
Ab Zeile 10:
Spalte 1: Quelldatei(en)
Spalte 2: Excel-Kennung xls, xlsm, …
Spalte 3: Quellsheet (z.B. JAN)
Spalte 4: Zielsheet (z.B. GESAMT)

Ich denke, mich genügend bemüht zu haben und wünsche eine gute Nacht.
lg erwin

Sub DatensaetzeHolen()
'ACHTUNG: KEINE FEHLERBEHANDLUNG

On Error GoTo ABBRUCH
Dim QUELLPFAD As Variant
Dim SIC_Arbeitsmappe As Variant, SIC_Arbeitssheet As Variant
Dim SIC_ArbeitsmappeQuelle As Variant, SIC_ArbeitssheetQuelle As Variant
Dim QUELLEFirmennummer As Variant
Dim SUCHDATEI As Variant
Dim QUELLSHEET As Variant, ZIELSHEET As Variant
Dim Z As Double

SIC_Arbeitssheet = ActiveSheet.Name
SIC_Arbeitsmappe = ActiveWorkbook.Name

'-------------------------------------------------------------
'Alle Datensätze aus früherer Zusammenführung löschen
Sheets(„Datensaetze“).Activate
Cells.Select
Selection.ClearContents
Range(„A1“).Select
'-------------------------------------------------------------

Sheets(„PARAM“).Activate

ZEILEZiel = 1
For I = 10 To 50000
Sheets(„PARAM“).Activate

'prüfen, ob noch eine Arbeitsmappe zu öffnen ist
If Sheets(SIC_Arbeitssheet).Cells(I, 1).Value = „“ Then Exit For

'QUELLDATEI BESTIMMEN
QUELLPFAD = Sheets(SIC_Arbeitssheet).Cells(3, 1).Value
SIC_ArbeitsmappeQuelle = Sheets(SIC_Arbeitssheet).Cells(I, 1).Value & Sheets(SIC_Arbeitssheet).Cells(I, 2).Value
SUCHDATEI = QUELLPFAD & SIC_ArbeitsmappeQuelle

QUELLSHEET = Sheets(SIC_Arbeitssheet).Cells(I, 3).Value
ZIELSHEET = Sheets(SIC_Arbeitssheet).Cells(I, 4).Value

'ÖFFNEN DER QUELLDATEI + entsprechendes Quellsheet aktivieren
Workbooks.Open Filename:=SUCHDATEI
Sheets(QUELLSHEET).Activate

'-----------------------------------DATEN AUS DER QUELLE AUSLESEN
'SO LIEBER NUTZER, HIER BIST DU GEFORDERT

'markiere,kopiere, …

'-----------------------------------DATEN IN ZIELTABELLE KOPIEREN,EINFÜEGEN, …
'aktiviere das entsprechende Ziel-Sheet
Windows(SIC_Arbeitsmappe).Activate
Sheets(ZIELSHEET).Activate

'Inhalte einfügen …

'-----------------------------------ÜBERTRAGUNG BEENDEN
'QUELLDATEI aktivieren
Windows(SIC_ArbeitsmappeQuelle).Activate

'QUELLDATEI Zwischenablage
Application.CutCopyMode = False

'QUELLDATEI schließen ohne zu speichern
ActiveWindow.Close savechanges:=False
NAECHSTER:
Next I

Range(„A1“).Select
Exit Sub
ABBRUCH:
End Sub

Hallo Marcus,

hier jetzt ein kompletter VBA-Code für zwei Arbeitsmappen. In die ERSTE (zuerst geöffnet) werden die Daten kopiert, von den Arbeitsblättern der ZWEITEN werden die Daten kopiert, und zwar werden nur die Arbeitsblätter gewählt, die mit dem Namen „Tabelle“ (7 Zeichen) anfangen.


Sub DatenHolen()
On Error Resume Next
Dim wks As Worksheet

'Zum Stammblatt wechseln
Workbooks(1).Activate
ActiveWorkbooks.Worksheets(1).Activate

'Zur Vorlage wechseln
Workbooks(2).Activate
ActiveWorkbooks.Worksheets(1).Activate

For Each wks In ActiveWorkbook.Worksheets
Select Case Left(wks.Name, 7)
Case „Tabelle“
wks.Activate
DatenKopieren
'Zum Stammblatt wechseln
Workbooks(1).Activate
DatenEinfügen
'Zur Vorlage zurück
Workbooks(2).Activate
Case Else
GoTo weiter:
End Select
weiter:
Next wks
End Sub

Sub DatenKopieren()

Dim strMarkierungStart As String

strMarkierungStart = „A1“

ActiveSheet.Range(strMarkierungStart).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy

End Sub

Sub DatenEinfügen()

Range(„A1“).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste

End Sub


Hallo Marcus,

die Beispieldateien sollten mehr als eine Zeile Daten enthalten, da sonst die Markierung bis zum Ende der Tabellen geht. Also am Anfang einige Daten manuell einfügen.

Gruß
Klaus

Hallo Marcus,

hab mir jetzt mal ein paar Gedanken gemacht, verstehe aber nicht genau was du benötigst:

Mit 40 Tabellen meinst du bestimmt 40 verschiedene Dateien, oder?
Haben die Dateien mehrere Blätter die du benötigst oder immer nur z.b. Tabelle 1

Sollen die Daten der verschiedenen Dateien in ein Blatt untereinander bzw. nebeneinander geschrieben werden, oder soll jede Datei ein eigenes Blatt bekommen.

Es wäre super wenn du ein Beispiel mit Urzustand und Wunschzustand hochladen oder mir schicken könntest. (setzt halt andere Werte / Namen ein)

Hier steckt schon etwas Programmierarbeit dahinter, daher möchte ich nicht umsonst den falschen Weg einschlagen und du brauchst dann etwas ganz anderes.