Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

transponieren, löschen per vba
#1
Hallo zusammen

Ich würde es schätzen, wenn ihr mir erneut helfen könntet!
Meine Tabelle muss wie folgt transponiert werden:

Die Werte aus der Spalte Q (Bereich Q3:Q10) transponieren nach R2:Y2.
Danach Zeilen 3:10 löschen.

Danach eine Schlaufe bis zum letzten Eintrag (unterschiedlich viele Zeilen, nicht fix). Das heisst...
Q4:Q11 nach R3:Y3 transponieren
Zeilen 4:11 löschen

Q5:Q12 nach R4:Y4 transponieren
Zeilen 5:12 löschen

Der zu transponierende Block umfasst immer 8 Werte/Zeilen.
usw.

Vorher

Tabelle1

QRSTUVWXY
1EintragMeta1Meta1_RefMeta2Meta2_RefMeta3Meta3_RefBemLabel
21
3Meta1
4Meta1_Ref
5Meta2
6Meta2_Ref
7Meta3
8Meta3_Ref
9Bem
10Label
112
12Meta1
13Meta1_Ref
14Meta2
15Meta2_Ref
16Meta3
17Meta3_Ref
18Bem
19Label
203
21Meta1
22Meta1_Ref
23Meta2
24Meta2_Ref
25Meta3
26Meta3_Ref
27Bem
28Label

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8


Nachher


Tabelle1

QRSTUVWXY
1EintragMeta1Meta1_RefMeta2Meta2_RefMeta3Meta3_RefBemLabel
21Meta1Meta1_RefMeta2Meta2_RefMeta3Meta3_RefBemLabel
32Meta1Meta1_RefMeta2Meta2_RefMeta3Meta3_RefBemLabel
43Meta1Meta1_RefMeta2Meta2_RefMeta3Meta3_RefBemLabel

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8


Wie geht das mit vba?
Die Transponierung von unten nach oben durchlaufen lassen?

Danke für die tolle Hilfe!

Liebe Grüsse
Urs - Office 2010
Antworten Top
#2
Hi

so habe ich es getestet

Code:
Sub test()
   Dim lngZiel As Long
   Do
       lngZiel = Cells(Rows.Count, 18).End(xlUp).Row + 1
       Cells(lngZiel + 1, 17).Resize(8, 1).Copy
       Cells(lngZiel, 18).PasteSpecial Paste:=xlPasteAll, Transpose:=True
       Cells(lngZiel + 1, 1).Resize(8, 1).EntireRow.Delete
   Loop While Cells(lngZiel + 1, 17) <> ""
End Sub
MfG Tom
Antworten Top
#3
Lieber Tom

Das ist suuuper Thumbsupsmileyanim
Merci für den Code!

Wünsche dir und allen ein sonniges Weekende.

Mfg - Urs
Antworten Top
#4
Moin!
Sowas ist auch problemlos mit einfachen Formeln lösbar.
Erst gestern habe ich für ein ähnliches Problem eine Lösung erstellt:
http://www.clever-excel-forum.de/thread-...l#pid47946

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Hi

hier deine gewünschte Ergänzung

Code:
Sub test()
   Dim lngZiel As Long
   Do
       lngZiel = Cells(Rows.Count, 18).End(xlUp).Row + 1
       If Cells(lngZiel, 17).Value = "xyz" Then
           Cells(lngZiel, 1).Resize(9, 1).EntireRow.Delete
       Else
           Cells(lngZiel + 1, 17).Resize(8, 1).Copy
           Cells(lngZiel, 18).PasteSpecial Paste:=xlPasteAll, Transpose:=True
           Cells(lngZiel + 1, 1).Resize(8, 1).EntireRow.Delete
       End If
   Loop While Cells(lngZiel + 1, 17) <> ""
End Sub
ich habe dir mal meine Testdatei angehangen
ich hoffe ich habe deine Zielvorstellung richtig verstanden

MfG Tom


Angehängte Dateien
.xlsm   Dude85.xlsm (Größe: 21,64 KB / Downloads: 1)
Antworten Top
#6
Hi Tom

Ja, funktioniert super!
Ich danke dir herzlichst für den Support - klasse!

Gruss
Urs

PS: auch Ralf für den Hinweis mit der Formel Smile
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste