Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1756to1760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - transponieren

VBA - transponieren
12.05.2020 10:37:57
wolf
https:\/\/www.herber.de/bbs/user/137450.xlsm
Hallo Excelspezialisten,
brauche mal wieder Eure Hilfe. Ab D1 stehen Überschriften unterschiedlicher Anzahl. In Spalte A sind diese wieder zufinden. Die Werte in Spalte B sollen entsprechend der Überschriften transponiert werden.Wichtig ist auch, daß die Links und Formate mit übertragen werden.
Im voraus schon mal Danke.
Gruß
wolf ludwig

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - transponieren
12.05.2020 11:06:52
Daniel
Hi
Wenn Links und Formate übernommen werden sollen, geht's warscheinlich nur durch Zeilenweises kopieren und einfügen mit Transponieren.
Dh entweder Fleißarbeit, oder ein kleines Makro für diese Aufgabe:
Sub Transponieren()
Dim Cap As Range
Dim Body As Range
Dim RB As Range
Dim Z As Long
Z = 4
Set Body = Range("D1").CurrentRegion
Set Cap = Body.Rows(1)
Set Body = Body.Offset(1, 0).Resize(Body.Rows.Count - 1)
For Each RB In Body.Rows
With Cells(Z, 1)
Cap.Copy
.PasteSpecial xlPasteAll, Transpose:=True
RB.Copy
.Offset(0, 1).PasteSpecial xlPasteAll, Transpose:=True
End With
Z = Z + Body.Columns.Count + 1
Next
End Sub

Gruß Daniel
Anzeige
AW: VBA - transponieren
12.05.2020 11:16:04
wolf
Hallo Daniel,
danke für Deine schnelle Antwort und Lösung. Ich habe Dein Makro in meiner Beispielmappe ausprobiert,
bei mir bleibt es bei "Set Body = Body.Offset(1, 0).Resize(Body.Rows.Count - 1)" stehen.
Gruß
wolf ludwig
AW: VBA - transponieren
12.05.2020 11:26:15
Daniel
HI
sorry, bei mir funktioniert mein Code mit deiner Beispieldatei, habs grad nochmal mit dem Code aus dem Forum getestet.
(hab auch die gleiche Excelversion wie von dir angegeben)
solltest du den Code nicht mit deiner Beispieldatei getestet haben sondern mit deinen Echtdaten und es unterschiede zwischen beiden Dateien gibt, die ich nicht kennen kann, so musst du dich da leider selbst drum kümmern und die erforderlichen Anpassungen im Code vornehmen.
ich kann nur mit dem arbeiten, was du mir gezeigt hast.
Gruß Daniel
Anzeige
AW: VBA - transponieren
12.05.2020 11:33:27
wolf
Hallo Daniel,
es tut mir leid er bringt Laufzeitfehler 1004,"Anwendungs- oder objektdefinierter Fehler". Dein Makro habe ich ausschließlich in meiner Beispielsmappe die Dir auch vorliegt probiert.
Gruß
wolf ludwig
AW: VBA - transponieren
12.05.2020 11:37:24
Daniel
Hi
lade bitte die Datei mit dem Fehler hoch.
Wenn ich deine aktuelle Beispieldatei verwende und den Code, den ich im Forum gezeigt habe, kopiere und dort einfüge, bekomme ich keinen Fehler, von daher kann ich dir so nicht weiterhelfen.
Gruß Daniel
AW: wirklich transponieren?
12.05.2020 11:51:08
hary
Moin
meinst wirklich transponieren?
Oder sollen die Werte aus SpalteB unter die richtigen Ueberschriften kommen?
Dim Bereich As Range, zelle As Range
Dim rngFind As Range, gefunden As Range
Dim firstAddress As String
Set Bereich = Range("D1").CurrentRegion
For Each zelle In Bereich
With Columns(1)
Set rngFind = .Find(zelle, LookIn:=xlFormulas)
If Not rngFind Is Nothing Then
firstAddress = rngFind.Address
Do
If gefunden Is Nothing Then
Set gefunden = rngFind.Offset(, 1)
Else
Set gefunden = Union(gefunden, rngFind.Offset(, 1))
End If
Set rngFind = .FindNext(rngFind)
Loop While rngFind.Address  firstAddress
End If
End With
If Not gefunden Is Nothing Then gefunden.Copy zelle.Offset(1, 0)
Set gefunden = Nothing
Next

gruss hary
Anzeige
AW: wirklich transponieren?
12.05.2020 12:05:40
wolf
Hallo Hary,
Dein Makro ist genau das richtige, herzlichen Dank dafür
Grüße
wolf ludwig
Sorry, jetzt hab sich verstanden
12.05.2020 12:04:59
Daniel
du hast Spalte A:B als Ausgangsbasis und willst die die Tabelle ab D1 erzeugen.
ich habes andersrum verstanden und die Daten in Spalte A:B aus der Tabelle ab B1 erzeugt.
und mit der Beispieldatei, die du hochgeladen hast, hat das wunderbar funktioniert.
dann mit diesem Code:
Sub test()
Dim rng As Range
Dim z As Long
z = 2
For Each rng In Columns(2).SpecialCells(xlCellTypeConstants).Areas
rng.Copy
Cells(z, 4).PasteSpecial xlPasteAll, Transpose:=True
z = z + 1
Next
End Sub

Anzeige
AW: Sorry, jetzt hab sich verstanden
12.05.2020 12:10:15
wolf
Hallo Daniel,
auch Dein Makro haut hin wie Bolle, ich habe jetzt die Qual der Wahl.
Herzlichen Dank.
Grüße
wolf ludwig
AW:Nicht ganz ;-)
12.05.2020 12:18:12
hary
Moin
Es gibt Unterschiede.
Von Daniel:



Tabelle1
 E
1BBB
2456
3678
4467
5222
6 
7 

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

von mir:



Tabelle1
 E
1BBB
2456
31122
4678
5467
6222
7 

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

gruss hary
Anzeige
AW: AW:Nicht ganz ;-)
12.05.2020 12:49:46
Daniel
HI
die 1122 für BBB kommt aber in den Ausgangsdaten nicht vor.
das Ergebnis wäre also falsch.
allerdings bekomme ich, wenn ich dein Makro auf die Beispieldatei anwende, das korrekte Ergebnis.
dh es funktionieren beide Markos.
Gruß Daniel
AW: Sry, Daniel..
12.05.2020 13:10:47
hary
Moin
..hast recht, weiss auch nicht wie sich das zweite BBB eingeschlichen hat.
sry, gruss hary

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige