Herbers Excel-Forum - das Archiv

Schwieriges Transponieren - Automatisch

Bild

Betrifft: Schwieriges Transponieren - Automatisch
von: Pierre Beyer

Geschrieben am: 15.02.2005 14:08:14
Hallo,
folgendes Anliegen - hab auch schon etliche Themen im Forum durchsucht - aber auch durch mein Bischen Wissen in VBA, keine Lösung gefunden...
Es geht um folgendes: Wenn man sich die Tabelle anschaut, soll diese MATRIX in eine normale Tabelle umgeformt werden (später mit Autofilterfunktionen usw.)...das heißt taballarisch in dem Fall das am Ende nur 5 Spalten sind!?
(Betrifft Tabelle 1...Urfassung)

Händisch würde ich es folgender Maßen tun müssen:
Wie in Tabelle 2 vorgemacht, nur das man da bis runter alle EPA's durchgehen müsste...!
Anlage (https://www.herber.de/bbs/user/18123.xls)
Würde mich gern über ein solchen Quelltext freuen, der dieses händische dann automatisch für diese Menge an Zeilen tut.
Danke@Greetz
Pierre
Bild

Betrifft: AW: Schwieriges Transponieren - Automatisch
von: Hübi
Geschrieben am: 15.02.2005 14:33:45
Hi Pierre,
deine Tabelle kann sich keiner downloaden, weil du den Link in () gesetzt hast.
Gruß Hübi
Bild

Betrifft: Was soll mit Spalte BT geschehen? o.w.T.
von: Reinhard
Geschrieben am: 15.02.2005 17:44:30
Bild

Betrifft: AW: Schwieriges Transponieren - Automatisch
von: Reinhard

Geschrieben am: 15.02.2005 19:11:37
Hi Pierre,
hat Infineon Technologies keine interne Excelcrew? *g
Alt+F11, Einfügen Modul, nachfolgenden Code reinkopieren, Editor schliessen.
Im Blatt "Ausgangsdatei" über Ansicht--Symbolleisten--Formular eine Befehlsschaltfläche anlegen, der das Makro umform() zuwweisen.
Gruß
Reinhard
Option Explicit
Sub umform()
Dim wksZ As Worksheet, wksQ As Worksheet
Dim ZeileZ As Long, ZeileQ As Long
Application.ScreenUpdating = False
For Each wksZ In ThisWorkbook.Worksheets
If wksZ.Name = "Ergebnis" Then
Application.DisplayAlerts = False
wksZ.Delete
Application.DisplayAlerts = True
End If
Next wksZ
ActiveWorkbook.Sheets.Add.Name = "Ergebnis"
Set wksQ = Worksheets("Ausgangsdatei")
Set wksZ = Worksheets("Ergebnis")
wksZ.Range("A1:E1") = Split("Gruppe Ebene EPA Anlage F")
With wksZ
ZeileQ = 5
ZeileZ = 2
While wksQ.Cells(ZeileQ, 1) <> ""
wksQ.Range("D" & ZeileQ & ":BS" & ZeileQ).Copy
.Range("E" & ZeileZ).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
wksQ.Range("D4:BS4").Copy
.Range("D" & ZeileZ).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
wksQ.Range("A" & ZeileQ & ":C" & ZeileQ).Copy Destination:=.Range("A" & ZeileZ)
.Range("A" & ZeileZ & ":C" & ZeileZ).Copy Destination:=.Range("A" & ZeileZ & ":C" & ZeileZ + 67)
ZeileQ = ZeileQ + 1
ZeileZ = ZeileZ + 68
Wend
End With
Application.ScreenUpdating = True
End Sub

Bild

Betrifft: AW: Schwieriges Transponieren - Automatisch
von: Pierre Beyer

Geschrieben am: 16.02.2005 09:07:09
Hallo Reinhard,
...wie bist du nur darauf gekommen :-)
Großes Dankeschön - es funktioniert erstmal (so halb) gut!!!
Kannst des mir auch ma ganz kurz näher bringen? Ich meine Reinkopieren bringt ja jede Tipse :o) ...aber da ich schon Vorkenntnis hab, würd ich es verstehen wollen.
Grüße Pierre
 Bild
Excel-Beispiele zum Thema "Schwieriges Transponieren - Automatisch"
Automatische Datumformatierung unterdrücken Automatisch Sicherungsdatei erstellen
Automatisches Komplettieren einer Zelleingabe Zelleingaben automatisch auf volle 1,2-Teile runden
Tabelle nach Datumseintrag automatisch sortieren Eingaben in B:D automatisch mit 6 multiplizieren
Zelleingabe automatisch in Kopfzeile übernehmen Nach Zelleingabe automatische Sortierung
Automatische Sortierung bei Zelleintrag Min- und Max-Werte automatisch markieren