Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Worksheets durch VBA loop konsolidieren

Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 12:45:07
LX1999
Hallo Community,
ich habe eine Frage bezüglich einer VBA applikation, die ich für meine Arbeit schreiben soll.
Mein Problem ist das folgende:
In einem Workbook habe ich über 100 Tabs (mit dem selben Grundgerüst, nur anderen Inhalt). Jetzt möchte ich den Inhalt dieser Tabs in einem Summary sheet konsolidieren.
Das Problem was sich anbahnt ist, dass ich nicht jedes worksheet individual ansprechen will, da evenuell auch mal neue Tabs dazukommen.
Meine Idee war jetzt ein seperates Excel Workbook zu erstellen, wo die Informationen konsolidiert werden.
Was haltet ihr von meiner Idee? Gibt es einen schlaueren Weg?
Danke für Eure Hilfe
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 13:06:39
Regina
Hallo,
mal davon abgesehen, das 100 Tabellen in einer Exceldatei nicht die beste Idee ist (Arbeitsgeschwindigkeit, Überscihtlichkeit), kannst Du mit einer For Each-Schleife durhc alle Tabellenblätter Deiner Datei "laufen" und von dort wiederum ggf. auch mit einer Schleife die Daten zu sammeln.
Ob Du das Ergebnis dann auf einem Summenblatt in der gleichen oder in einer anderen Datei eintrage lässt, ist dann eigentlich egal.
Gruß
Regina
Anzeige
AW: Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 13:37:47
LX1999
Hallo Regina,
danke für die schnelle Antwort.
Du beschreibst, dass man es in einem Summenblatt konsolidieren kann.
Kann ich denn im VBA Code schreiben: "Loope durch alle Worksheets außer das Summenblatt"?
Ich möchte ungern jetzt jedes Worksheet ansprechen, da damit die Lösung nichtmehr generisch ist.
Danke
Anzeige
AW: Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 13:48:02
Regina
Hi, mit dem folgenden Code kannst Du ale Tabellenblätter mit Ausnahme des Blattes "Summenblatt" durchlaufen:
Public Sub durch_alle_blaetter()
Dim obj_wks As Worksheet
For Each obj_wks In ThisWorkbook.Worksheets
If obj_wks.Name  "Summenblatt" Then
' mach was
End If
Next
End Sub
Gruß
Regina
Anzeige
AW: Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 13:52:08
LX1999
Hallo,
Danke für den Code, die Idee über den Sheet Namen zu gehen hatte ich noch nicht.
Danke, ich werde es am Montag mal ausprobieren.
Schönes Rest Wochenende
LX
AW: Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 13:07:31
Hajo_Zi
Gesamtsumme aus Summen über mehrere Tabellen
probiers mal mit
=SUMME(Tabelle1:Tabelle31!E4:F4)
Die Namen "Tabelle1:Tabelle31" musst ‚Du natürlich in Deine Namen ändern!
wobei immer die erste und die letzte Tabelle angegeben werden.
Dabei ist zu beachten, dass zwischen der Tabelle1 und Tabelle 31, kein anderes Tabellenblatt dazwischen liegen darf, welches nicht in die Berechnung mit aufgenommen werden soll. Diese Tabellenblätter sollten dann vor "Tabelle1" oder hinter "Tabelle31" verschoben werden

Anzeige
AW: Mehrere Worksheets durch VBA loop konsolidieren
09.02.2020 13:39:50
LX1999
Hi,
leider befinden sich in den Worksheets nur nur Zahlen sondern auch Buchstaben.
Danke für den Vorschlag
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Worksheets in Excel konsolidieren


Schritt-für-Schritt-Anleitung

Um mehrere Worksheets in Excel zu konsolidieren, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne dein Excel Workbook mit den mehreren Arbeitsblättern.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  4. Füge den folgenden Code ein, um durch alle Arbeitsblätter zu iterieren und die Daten zu konsolidieren:
Public Sub durch_alle_blaetter()
    Dim obj_wks As Worksheet
    Dim zielBlatt As Worksheet
    Dim zielZeile As Long

    Set zielBlatt = ThisWorkbook.Worksheets("Summenblatt")
    zielZeile = 1 ' Beginne in der ersten Zeile des Zielblatts

    For Each obj_wks In ThisWorkbook.Worksheets
        If obj_wks.Name <> "Summenblatt" Then
            ' Hier die Logik zum Kopieren der Daten einfügen
            obj_wks.Range("A1:B10").Copy zielBlatt.Cells(zielZeile, 1)
            zielZeile = zielZeile + 10 ' Gehe zur nächsten Zeile
        End If
    Next
End Sub
  1. Passe die Range ("A1:B10") entsprechend deiner Daten an.
  2. Führe das Skript aus, indem du im VBA-Editor auf Run klickst.

Häufige Fehler und Lösungen

  • Fehler: "Typen nicht übereinstimmend"

    • Lösung: Überprüfe, ob alle Daten in den angegebenen Zellen des Worksheets vom gleichen Typ sind (z.B. nur Zahlen oder nur Text).
  • Fehler: "Das angegebene Blatt existiert nicht"

    • Lösung: Stelle sicher, dass das Zielblatt (z.B. "Summenblatt") tatsächlich im Workbook vorhanden ist.
  • Fehler: "Array-Index außerhalb des gültigen Bereichs"

    • Lösung: Vergewissere dich, dass die Schleife nicht auf leere oder nicht existierende Arbeitsblätter zugreift.

Alternative Methoden

Falls du keine VBA-Kenntnisse hast, kannst du auch die Funktionen von Excel verwenden:

  • Daten konsolidieren: Gehe zu Daten > Konsolidieren. Wähle die Funktion (z.B. Summe) und füge die Bereiche aus den verschiedenen Tabellenblättern hinzu.
  • 3D-Referenzen: Nutze die Formel =SUMME(Tabelle1:Tabelle31!E4:F4), um Daten über mehrere Arbeitsblätter zu summieren. Achte darauf, dass keine anderen Blätter zwischen den angegebenen Blättern liegen.

Praktische Beispiele

  1. VBA Beispiel: Konsolidierung über mehrere Spalten

    • Verwende den oben genannten VBA-Code und passe die Range an, um mehrere Spalten zu konsolidieren.
  2. Excel Funktionen:

    • Um Daten aus unterschiedlichen Blättern zu summieren, kannst du die Formel =SUMME(Tabelle1:Tabelle5!A1) verwenden, um die Werte der Zelle A1 von Tabelle1 bis Tabelle5 zu addieren.

Tipps für Profis

  • Verwende dynamische Bereiche: Anstatt feste Zellreferenzen zu nutzen, kannst du dynamische Bereiche mit OFFSET oder INDEX erstellen, um die Flexibilität zu erhöhen.
  • Fehlerbehandlung im VBA: Implementiere Error-Handling im VBA-Code, um unerwartete Fehler zu vermeiden.
  • Regelmäßige Backups: Erstelle regelmäßig Backups deines Excel-Dokuments, um Datenverluste zu vermeiden, besonders wenn du mit vielen Arbeitsblättern arbeitest.

FAQ: Häufige Fragen

1. Wie viele Arbeitsblätter kann ich konsolidieren?
Du kannst so viele Arbeitsblätter konsolidieren, wie du möchtest. Achte jedoch darauf, dass dein Computer genügend Ressourcen hat, um die Daten zu verarbeiten.

2. Kann ich Daten aus verschiedenen Excel-Dateien konsolidieren?
Ja, du kannst Daten aus unterschiedlichen Excel-Dateien konsolidieren, indem du die entsprechenden Arbeitsmappen im VBA-Code referenzierst oder die Konsolidierungsfunktion in Excel verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige