Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
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

Spalte in Zeile transponieren (mit Makro)

Spalte in Zeile transponieren (mit Makro)
23.03.2016 10:47:13
Christian
Hallo Zusammen,
ich benötige mal wieder eure Hilfe.
Ich möchte gerne eine Exceldatei etwas umbauen mit einem Makro, da ich diese Datei täglich in der Form erhalte.
In der Quelldatei sind Spalte A, B, C, D, E, F, G solange gleich, wie in Spalte H Nummern stehen, die quasi zu der lfd. Nr. (in Spalte A) gehören.
Die Spalten I, J, K sind irrelevant.
Ich bräuchte jetzt quasi die Spalte H transponiert in eine Zeile.
Ziel ist es, in Zeile A jede "lfd. Nrummer" nur noch 1x zu haben.
Ab Spalte N sollen quasi die Zellen aus Zeile H transponiert werden. (Das kann mal 1 Spalte bedeuten, kann aber auch mal 50 oder mehr Spalten bedeuten)
In Spalte M benötige ich die Anzahl der durch die transponierung gefüllten Spalten.
Ich habe mal eine Datei angehängt, mit 2 Mappen. Mappe1 ist der Ursprung und Mappe 2 mein zu erreichendes Ziel.
Ich habe schon ein wenig probiert, aber ich scheitere an der Transponierung bei unterschiedlichen Zeilenzahlen je "lfd. Nummer".
Ich hoffe es kann mir hierbei jemand helfen.
Vielen Dank schonmal vorab!
https://www.herber.de/bbs/user/104553.xls

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte in Zeile transponieren (mit Makro)
23.03.2016 11:02:13
Fennek
Hallo,
es gibt zwei Wege, mit denen du dich annähern kannst.
Mit dem Makrorekorder einfach copy und Inhalte einfügen - transponieren
In vba: application.transpose
Mfg

AW: es geht aber auch ohne VBA mit 3 Formeln! owT
23.03.2016 11:10:06
...
Gruß Werner
.. , - ...

AW: Spalte in Zeile transponieren (mit Makro)
23.03.2016 11:10:33
ChrisL
Hi Christian
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, tempZeile As Variant
Set WS1 = Worksheets("Ursprung")
Set WS2 = Worksheets.Add
WS2.Range("A1:AE1") = "div. Titel"
For iZeile = 2 To WS1.Cells(WS1.Rows.Count, 1).End(xlUp).Row
tempZeile = Application.Match(WS1.Cells(iZeile, 1), WS2.Columns(1), 0)
If IsNumeric(tempZeile) Then
WS2.Range("IV" & tempZeile).End(xlToLeft).Offset(0, 1) = WS1.Cells(iZeile, 8)
Else
tempZeile = WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row + 1
WS2.Range(WS2.Cells(tempZeile, 1), WS2.Cells(tempZeile, 11)).Value = _
WS1.Range(WS1.Cells(iZeile, 1), WS1.Cells(iZeile, 11)).Value
WS2.Cells(tempZeile, 14) = WS1.Cells(iZeile, 8)
End If
WS2.Cells(tempZeile, 13) = WS2.Cells(tempZeile, 13) + 1
Next iZeile
End Sub

cu
Chris

Anzeige
AW: Spalte in Zeile transponieren (mit Makro)
23.03.2016 15:00:29
Christian
Hallo Chris,
das ist riesig. Klappt genau so wie ich es mir vorgestellt habe!!! Vielen Dank dafür.
ich hab es jetzt in mein Import-Makro eingebaut und hab nur noch eine kleine Frage.
Ich sortiere die Spalten in der Zieltabelle etwas um. ich nutze dafür:

With .Range(.Cells(1, 1), .Cells(zaehler_4, 1))   'Spalte A ---> C
.Copy
wksAlle.Cells(Zeile_K, 3).PasteSpecial Paste:=xlPasteValues
End With
With .Range(.Cells(1, 2), .Cells(zaehler_4, 2))   'Spalte B ---> A
.Copy
wksAlle.Cells(Zeile_K, 1).PasteSpecial Paste:=xlPasteValues
usw...
Allerdings will ich jetzt für die transponierten Spalten nicht für jede Spalte eine seperaten Codeteil schreiben (ich würde bis Spalte "SS" machen --> das sind dann 500 transponierte).
gibt es dafür nicht eine Möglichkeit ala "Letzte Spalte"?

Anzeige
AW: Spalte in Zeile transponieren (mit Makro)
23.03.2016 15:56:06
ChrisL
Hi Christian
Schwer zu beurteilen ohne Zusammenhang.
Grundsätzlich stellt sich die Frage, ob es beim Umsortieren ein bestimmtes Muster gibt oder ob es ein "willkürliches" Umsortieren ist.
Wenn es kein Muster gibt, kann man mit folgendem Vorgehen (beispielhaft) ein paar Buchstaben sparen.
Sub DeinMakro()
Call HilfsMakro(1, 3) ' von A nach C
Call HilfsMakro(2, 1) ' von B nach A
End Sub
Private Sub HilfsMakro(lVon As Long, lNach As Long)
Cells(1, lVon).Copy Cells(1, lNach)
End Sub

cu
Chris

AW: Spalte in Zeile transponieren (mit Makro)
23.03.2016 17:45:13
Christian
Hallo Chris,
manchmal hab ich auch ein Brett vor dem Kopf. Das geht auch so ganz leicht :)
With .Range(.Cells(1, 14), .Cells(zaehler_4, 513))   'Spalte N-SS ---> AI-TN
.Copy
wksAlle.Cells(Zeile_K, 35).PasteSpecial Paste:=xlPasteValues
Aber Danke nochmal für deine großartige Hilfe :)
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige