Microsoft Excel

Herbers Excel/VBA-Archiv

Für jede Zeile neues Sheet und Daten transponieren | Herbers Excel-Forum


Betrifft: Für jede Zeile neues Sheet und Daten transponieren von: Dietmar aus Aachen
Geschrieben am: 04.02.2010 15:15:37

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<< werden, (d.h. aus waagerecht wird senkrecht) die Zeile 1 des Datenpools (Überschrift) soll dabei auf jedem Auswertesheet senkrecht in der Spalte A ab Zelle A2 übertragen werden
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

  

Betrifft: Daten separieren und transponiert kopieren von: NoNet
Geschrieben am: 04.02.2010 16:04:40

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


  

Betrifft: Wow! Das ist es!!! von: Dietmar aus Aachen
Geschrieben am: 04.02.2010 17:52:45

Hallo NeNet!

das ist ja genial, es funktioniert genau so, wie es soll. Begeisterung pur!
Stunden Arbeit gespart!

Herzlichen Dank!

Dietmar aus Aachen


  

Betrifft: OT: NeNet ? - DochNet ;-) _oT von: NoNet
Geschrieben am: 04.02.2010 17:57:10

_oT = "ohne Text"


  

Betrifft: :-)) SuperNet :-)) _oT von: Dietmar aus Aachen
Geschrieben am: 04.02.2010 22:25:56

_


  

Betrifft: JetztÜbertreibeAberBitteNet :-)) _oT von: NoNet
Geschrieben am: 04.02.2010 23:02:01

_oT