Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Für jede Zeile ein neues Tabellenblatt

Für jede Zeile ein neues Tabellenblatt
12.04.2016 15:21:54
Markus
Hi Leute
Ich lasse mir per vba Makro Firmendaten in eine Tabelle schreiben. Pro Zeile eine Firma. Nun möchte ich für jeden dieser Datensätze ein Tabellenblatt in einer anderen Mappe haben. Dort sollen dann Grafiken erstellt werden.
Ich habe somit Ausgansmappe mit Tabelle 2 und 4
und Zielmappe. So sollten die Werte übertragen werden:
(Ausgangsmappe Tabelle 2) - (Zielmappe neues Tabellenblatt)
Spalte 1 - Name des neuen Tabellenblattes
Spalte 3 - B1
Spalte 5 - B2
Spalte 7 - B4
Spalte 10 - B12
Spalte 12 - B13
In die Zeile B3 soll dann die Formel B1-(B2+B4)
Nun sollte ja der Name der Tabelle bereits angelegt sein. Die meisten Firmen sind nun aber in Tabelle 4 nocheinmal vorhanden. Dafür soll aber nicht noch eine eigene Tabelle angelegt werden, sondern wenn der Inhalt von Spalte 1 in Tabelle 4 bereits in einem Tabellenblatt vorhanden ist, dann soll er dort so hinzugefügt werden:
(Ausgangsmappe Tabelle 4) - (Zielmappe)
Spalte 3 - B6
Spalte 5 - B7
Spalte 7 - B9
Spalte 10 - B16
Spalte 12 - B17
in die Zelle B8 soll dann die Formel B6-(B7+B9)
Ausgeführt sollte diese Schleife solange werden, bis das erste mal der Wert von Spalte 1 keine Nummer mehr ist.
Ich wär so dankbar wenn hierfür jemand eine Lösung hat und ich das nicht manuell eintippen muss.

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur ein Anfang
12.04.2016 16:10:08
Fennek
Hallo Marcus,
als Start kann dieser Code helfen, die Fleißarbeit alle Werte zu übertragen kannst du hoffenhlich übernehmen.
Das Prüfen auf Duplikate in Tab4 ist sicher noch einmal eine Aufgabe.

Sub sMarkus()
Dim WBQ as workbook
Dim WBZ as workbook
Set wbq = thisworkbook
Set wbz = workbooks.add ' später durch open ersetzen
Lr = wbq.sheets("Tabelle2").cells(rows.count, "A").end(xlup).row
For i = 2 to lr
Wbz.sheets.add after:=wbz.sheets(sheets.count)
Wbz.sheet(sheets.count).name = wbq.sheets("Tabelle2").cells(i, "A")
Next i
End sub
Mfg
[abgetipt, Fehler möglich]

Anzeige
AW: nur ein Anfang
13.04.2016 14:59:39
Markus
Vielen Dank schon mal Fennek! Ich werde damit versuchen zu arbeiten und mal schauen wie weit ich komme.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Für jede Zeile ein neues Tabellenblatt erstellen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne deine bestehende Arbeitsmappe mit den Firmendaten in „Tabelle2“ und „Tabelle4“.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:
    • Rechtsklick auf „VBAProject“ → Einfügen → Modul.
  4. Kopiere den folgenden Code in das Modul:

    Sub sMarkus()
        Dim WBQ As Workbook
        Dim WBZ As Workbook
        Set WBQ = ThisWorkbook
        Set WBZ = Workbooks.Add ' später durch Open ersetzen
        Lr = WBQ.Sheets("Tabelle2").Cells(Rows.Count, "A").End(xlUp).Row
    
        For i = 2 To Lr
            WBZ.Sheets.Add After:=WBZ.Sheets(Sheets.Count)
            WBZ.Sheets(Sheets.Count).Name = WBQ.Sheets("Tabelle2").Cells(i, "A")
            ' Hier können weitere Zellübertragungen folgen
        Next i
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.
  6. Führe das Makro aus:
    • Gehe zu „Entwicklertools“ → „Makros“ → wähle sMarkus und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler 1004 beim Umbenennen eines Arbeitsblatts.

    • Lösung: Stelle sicher, dass die Namen der neuen Tabellenblätter keine ungültigen Zeichen (z.B. /, \, ?, *, [ oder ]) enthalten. Du kannst die Namensgebung im Code anpassen, um das zu prüfen.
  • Fehler: Das Makro erstellt zu viele Blätter.

    • Lösung: Überprüfe die Schleifenbedingungen, um sicherzustellen, dass die Schleife nur so lange läuft, wie es gültige Daten in "Tabelle2" gibt.

Alternative Methoden

  • Power Query: Statt VBA kannst du Power Query verwenden, um Daten aus einer Tabelle in neue Tabellenblätter zu importieren. Dies erfordert jedoch eine manuelle Konfiguration und ist weniger flexibel als ein VBA-Makro.
  • Pivot-Tabellen: Wenn es dir nur um die Analyse der Daten geht, ziehe in Betracht, Pivot-Tabellen zu erstellen, anstatt neue Blätter für jede Zeile zu erzeugen.

Praktische Beispiele

Hier ein Beispiel, wie du eine Formel in die neuen Tabellenblätter einfügen kannst:

WS.Cells(3, 2).Formula = "=" & WBQ.Sheets("Tabelle2").Cells(i, 3).Address & "-(" & WBQ.Sheets("Tabelle2").Cells(i, 5).Address & "+" & WBQ.Sheets("Tabelle2").Cells(i, 7).Address & ")"

Diese Zeile kannst du innerhalb der Schleife nach dem Erstellen des neuen Blattes einfügen, um die gewünschte Berechnung zu automatisieren.


Tipps für Profis

  • Fehlerbehandlung einfügen: Verwende On Error Resume Next am Anfang deines Codes, um Laufzeitfehler zu ignorieren und die Ausführung fortzusetzen.
  • Optimierung: Wenn du viele Daten verarbeitest, deaktiviere das Bildschirm-Update mit Application.ScreenUpdating = False bevor du mit der Verarbeitung beginnst. Aktiviere es danach wieder mit Application.ScreenUpdating = True.

FAQ: Häufige Fragen

1. Kann ich mehr als nur die Namen in die neuen Tabellenblätter übertragen? Ja, du kannst weitere Zellen und Formeln hinzufügen, indem du den VBA-Code anpasst und die entsprechenden Zelladressen angibst.

2. Wie kann ich sicherstellen, dass keine Duplikate in den neuen Tabellenblättern entstehen? Du kannst eine zusätzliche Überprüfung im Code hinzufügen, die vor dem Erstellen eines neuen Blattes prüft, ob der Name bereits existiert.

3. Welche Excel-Version benötige ich für das Ausführen von VBA-Skripten? Die meisten modernen Excel-Versionen (Excel 2010 und später) unterstützen VBA und die beschriebenen Funktionen.

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