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

Für jede Zeile neues Sheet und Daten transponieren

Forumthread: Für jede Zeile neues Sheet und Daten transponieren

Für jede Zeile neues Sheet und Daten transponieren
Dietmar
Hallo zusammen,
ich meine es hier schon einmal gelesen zu haben, finde es aber nicht.
Ich habe ein Datenpool-Sheet mit Überschrift in Zeile 1, es sind ca. 20 Spalten vorhanden.
Ab Zeile 2 befinden sich die Daten (ständig wachsend).
Wie kann ich per VBA für jede Datenzeile (d.h. ab Zeile 2) ein eigenständiges Tabellenblatt erzeugen.
Dabei soll der VBA-Codes folgendes können:
a) automatisch erkennen wieviele Daten-Zeilen vorhanden sind
b) für jede Datenzeile eine eigenes Tabellenblatt erzeugen
c) dieses Blatt soll benannt sein nach dem Inhalt des jeweils in Spalte 1 befindlichen Eintrags
d) die Daten sollen in das jeweilige Tabellenblatt >>transponiert Die Transponierung der Daten selbst soll dann in jedem Sheet senkrecht in Spalte B ab Zelle B2
übertragen werden.
Für A1 und B1 möchte ich später eigene Eintragungen vornehmen.
Jemand eine Idee?
Dietmar aus Aachen
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Daten separieren und transponiert kopieren
04.02.2010 16:04:40
NoNet
Hallo Dietmar,
mit folgendem Makro (in ein allgemeines Modul - z.B. "Modul1" kopieren) kannst Du das lösen :
Sub DatenpoolSepariertTransponieren()
Dim lngZ As Long
Dim wsDatenpool As Worksheet
'Name des Tabellenblattes, das die Liste enthält - bitte anpassen :
Set wsDatenpool = Worksheets("Datenpool")
With wsDatenpool
For lngZ = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Sheets.Add.Name = .Cells(lngZ, 1) 'Name des neuen Blattes aus Spalte A
.Rows(1).Copy
[A2].PasteSpecial Transpose:=True 'Überschriften transponiert kopieren
.Rows(lngZ).Copy
[B2].PasteSpecial Transpose:=True 'Datenzeile transponiert kopieren
[A1].Select
Next
End With
Application.CutCopyMode = False
Set wsDatenpool = Nothing 'Speicher für Variable wieder freigeben
End Sub
Den Namen "Datenpool" des Blattes mit den Daten musst Du an Deinen Tabellennamen anpassen !
Gruß, NoNet
Anzeige
Wow! Das ist es!!!
04.02.2010 17:52:45
Dietmar
Hallo NeNet!
das ist ja genial, es funktioniert genau so, wie es soll. Begeisterung pur!
Stunden Arbeit gespart!
Herzlichen Dank!
Dietmar aus Aachen
OT: NeNet ? - DochNet ;-) _oT
04.02.2010 17:57:10
NoNet
_oT = "ohne Text"
:-)) SuperNet :-)) _oT
04.02.2010 22:25:56
Dietmar
_
Anzeige
JetztÜbertreibeAberBitteNet :-)) _oT
04.02.2010 23:02:01
NoNet
_oT
;
Anzeige

Infobox / Tutorial

Für jede Zeile ein neues Sheet und Daten transponieren


Schritt-für-Schritt-Anleitung

Um für jede Zeile in einem Excel-Datenpool ein neues Tabellenblatt zu erstellen und die Daten zu transponieren, kannst Du das folgende VBA-Skript verwenden. Dieses Skript geht davon aus, dass Deine Daten in einem Blatt mit dem Namen "Datenpool" stehen und die Daten ab Zeile 2 beginnen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub DatenpoolSepariertTransponieren()
        Dim lngZ As Long
        Dim wsDatenpool As Worksheet
        ' Name des Tabellenblattes, das die Liste enthält - bitte anpassen:
        Set wsDatenpool = Worksheets("Datenpool")
        With wsDatenpool
            For lngZ = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
                Sheets.Add.Name = .Cells(lngZ, 1) ' Name des neuen Blattes aus Spalte A
                .Rows(1).Copy
                [A2].PasteSpecial Transpose:=True ' Überschriften transponiert kopieren
                .Rows(lngZ).Copy
                [B2].PasteSpecial Transpose:=True ' Datenzeile transponiert kopieren
                [A1].Select
            Next
        End With
        Application.CutCopyMode = False
        Set wsDatenpool = Nothing ' Speicher für Variable wieder freigeben
    End Sub
  4. Passe den Namen "Datenpool" im Code an, falls Dein Blatt anders heißt.

  5. Schließe den VBA-Editor und führe das Makro aus.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Überprüfe, ob das Blatt "Datenpool" existiert und korrekt benannt ist.
  • Fehler: "Das Blatt kann nicht hinzugefügt werden"

    • Lösung: Stelle sicher, dass kein Blatt mit demselben Namen bereits existiert. Du kannst den Namen der neuen Blätter anpassen, um Kollisionen zu vermeiden.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du die Daten auch manuell transponieren. Markiere die Daten, kopiere sie (STRG+C), klicke mit der rechten Maustaste auf die gewünschte Zelle und wähle "Inhalte einfügen" > "Transponieren". Dies ist jedoch zeitaufwändiger und nicht für eine große Anzahl an Zeilen geeignet.


Praktische Beispiele

Angenommen, Du hast folgende Daten im "Datenpool":

Name Alter Stadt
Max 25 Berlin
Anna 30 Hamburg

Nach dem Ausführen des Makros werden zwei neue Blätter erstellt, eines für Max und eines für Anna. Die Daten werden in den neuen Blättern wie folgt transponiert:

Max:

A B
1
2 Name Max
3 Alter 25
4 Stadt Berlin

Anna:

A B
1
2 Name Anna
3 Alter 30
4 Stadt Hamburg

Tipps für Profis

  • Du kannst das Makro erweitern, um automatisch zu überprüfen, ob ein Blatt mit dem gleichen Namen bereits existiert, und es gegebenenfalls umbenennen.
  • Nutze die Option Explicit-Anweisung am Anfang Deines Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Experimentiere mit weiteren VBA-Funktionen, um Deine Excel-Arbeiten zu automatisieren und zu optimieren.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Excel-Versionen nutzen? Ja, das Makro sollte in Excel-Versionen ab 2010 problemlos funktionieren.

2. Was passiert, wenn ich das Makro mehrmals ausführe? Es wird versucht, für jede Zeile ein neues Blatt zu erstellen. Achte darauf, dass keine Blätter mit den gleichen Namen existieren, um Fehler zu vermeiden.

3. Wie kann ich die Daten in einem bestimmten Format in die neuen Blätter übertragen? Du kannst die .PasteSpecial-Methode anpassen, um verschiedene Formate zu verwenden, z.B. .PasteSpecial Paste:=xlPasteValues für nur die Werte.

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