Viele Zeilen in eine Spalte kopieren/transponieren

makro

Sub horizontal\_zu\_vertikal()
' Fügt eine Spalte ein in die dann alle Werte, die horizontal drin stehen auf vertikal umgeschichtet werden...
 Columns("A:A").Select
 Selection.Insert Shift:=xlToRight
 startcell = "B1"
 ausgabe = "A1"

 spalte = 0
 x = 0
 y = 0
 z = 0
 While spalte = 0

 inhalt = Range(startcell).Offset(x, y).Value
 If inhalt = "" Then
 x = x + 1
 y = 0
 Else
 Range(ausgabe).Offset(z, 0).Value = inhalt
 z = z + 1
 y = y + 1
 End If

 inhalt = Range(startcell).Offset(x, 0).Value ' prüfung auf erste Zelle der Zeile leer
 If inhalt = "" Then spalte = 1 ' abbruch
 If x \> 10000 Or y \> 10000 Then spalte = 1 ' sicherheitsausbruch
 Wend

End Sub

fügt am Anfang eine Spalte ein in die die Werte geschrieben werden…
sollte also wirklich nur einmal gestartet werden - alternativ die Zeilen
Columns(„A:A“).Select
Selection.Insert Shift:=xlToRight
löschen/auskommentieren und die Spalte manuell einfügen…

2 Like

Hallo,

ich bitte um Hilfe bei folgendem Problem:

Ich habe mehrere Tabellen mit jeweils 6 Spalten und 1067 Zeilen. Nun sollen zeilenweise die Werte der Zeilen in eine Spalte untereinander geschrieben werden, so daß dann eine Spalte mit 6402 Werten (6 x 1067) dabei rauskommt. Das muß dann für alle Tabellen wiederholt werden. Beispiel:
Ausgangstabelle
1|2|3|4|5|6
2|4|6|5|6|7

Endtabelle
1
2
3
4
5
6
2
4
6
5
6
7

Wie löse ich das mit minimalem manuellen Aufwand? Ich könnte zwar jeweils 256 Zeilen transponieren, dann müßte ich aber anschließend manuell die entstandenen Spalten in eine Spalte untereinander verschieben.

Vielen Dank für Eure Hilfe.

Gruß
Anka

Hallo,

danke für Deine Antworten und Deine Hilfe.

Ich hoffe, daß das eine einmalige Sache sein wird, bin mir aber nicht sicher.

Mit Makros kenne ich mich leider nicht so gut aus.

Wie meinst Du das mit „wie definierst Du das Ende einer Zeile? Sobald ein Feld leer ist ist das Ende erreicht? oder soll bei einer bestimmten Spalte aus sein mit dem ganzen Spass?“ In jeder Zeile sind 6 Spalten gefüllt. Spalte F wäre dann die letzte gefüllte Spalte. Ich hoffe, ich habe Deine Frage richtig verstanden.

Ich probiere jetzt das Makro aus und melde mich dann wieder.

Gruß
Anka

Hallo nochmal,

ich habe das Makro jetzt getestet. Es macht genau das, was ich brauche. Danke vielmals.

Noch eine kleine Frage: welches Buch/welche Literatur kannst Du jemandem empfehlen, der endlich mal anfangen will, sich mit Makros in Excel zu beschäftigen? Die aus der FAQ 1576?

Ich wünsche einen angenehmen Tag.

Gruß
Anka

huhu

ich habe das Makro jetzt getestet. Es macht genau das, was ich
brauche. Danke vielmals.

freut mich :smile: Danke für den Stern *g*

Noch eine kleine Frage: welches Buch/welche Literatur kannst
Du jemandem empfehlen, der endlich mal anfangen will, sich mit
Makros in Excel zu beschäftigen? Die aus der FAQ 1576?

keines *g*
Ich hab mir eigentlich alles aus dem Internet beigebracht und meine erfahrung mit Büchern ist dass man sie nicht so gut benutzen kann - wenn Codebeispiele gegeben sind muss man alles abtippen, ist aber auch nicht immer schlauer, was die Funktionen da eigentlich machen.
Es gibt im Internet sehr viele Seiten mit vba-Code, Tutorials, Formeln und Lösungen, dass ich eigentlich immer darauf zurückgreifen würde…
Hier ein paar der meiner Meinung nach besten Sites:
http://www.kmbuss.de/Excel-CD/index.htm
http://www.excelformeln.de/formeln.html?gruppe=4
http://www.herber.de/index.html?http://www.herber.de…
http://www.excel-inside.de/index.htm?/vba/108_sonsti…
http://www.connys-website.de/
http://www.schmittis-page.de/
zeigen nicht alle auf die Startseite - so sind sie halt aus meinen Bookmarks kopiert :smiley:

Ich wünsche einen angenehmen Tag.

Danke, ebenso :smiley:
Munich

Hallo,

danke nochmal für die Infos und die Links. Dann habe ich ein paar Ansatzpunkte.

Gruß
Anka

Hallo, Anka!

Noch eine kleine Frage: welches Buch/welche Literatur kannst
Du jemandem empfehlen, der endlich mal anfangen will, sich mit
Makros in Excel zu beschäftigen? Die aus der FAQ 1576?

Zum einen gäbe es die Möglichkeit, erst einmal grundlegend „Programmieren“ zu lernen, d. h. was für komische Konstrukte gibt es wie z. B. Schleifen, Abfragen, Bedingungen… Wenn Du da bereits Basiswissen hast, geht’s zur Makroprogrammierung.

Da machst Du das am besten so, dass Du Dir eine gewünschte Funktion, z. B. das Formatieren einer Zelle, per Makrorekorder aufzeichnest. Damit hast Du den Zugriff auf die einzelnen Objekte, die Du brauchst. Detaliiertere Infos bringt dann die Online-Hilfe. Das ganze kannst Du dann mit der Programmierung z. B. in eine Schleife packen, die Dir nicht nur eine Zelle formatiert, sondern eine ganze Spalte…

Was Codebeispiele etc. angeht, siehe Links von Munich…

Gruß, Manfred

Hi

Erst mal vorweg - soll das was einmaliges sein oder gehst Du davon aus, dass Du das öfter machen wirst?
gehen tut es mit Formeln genauso wie mit VBA - wobei der Weg mit den Formeln ein wenig komplizierter und über mehrere Schritte geht - wenn Du Dich mit VBA (Makros) auskennst würde ich Dir den Weg empfehlen…

dazu kommt dann noch die Frage - wie definierst Du das Ende einer Zeile? Sobald ein Feld leer ist ist das Ende erreicht? oder soll bei einer bestimmten Spalte aus sein mit dem ganzen Spass?

ich werd gleich mal noch ein kleines Makro schreiben in der Hoffnung, dass Du damit was anfangen kannst…

Da machst Du das am besten so, dass Du Dir eine gewünschte
Funktion, z. B. das Formatieren einer Zelle, per Makrorekorder
aufzeichnest. Damit hast Du den Zugriff auf die einzelnen
Objekte, die Du brauchst. Detaliiertere Infos bringt dann die
Online-Hilfe. Das ganze kannst Du dann mit der Programmierung
z. B. in eine Schleife packen, die Dir nicht nur eine Zelle
formatiert, sondern eine ganze Spalte…

Guten Morgen Manfred,

vielen Dank für den Hinweis mit dem Makrorekorder und der Online-Hilfe. Manchmal kommt man nicht auf das Naheliegendste. Dann werde ich mich bei der nächsten Aufgabe mal ans Werk machen.

Gruß
Anka

Hallo @MunichFreak,

ich bin nach langem suchen auf dein makro gestossen. Leider weiss ich nicht, wie ich es auf eine bestimmte zeilenlänge beschränken kann. Ich habe einige spalten, die keine werte haben und will diese aber mitübernehmen.

Kannst du mir es erklären?

LG

Ben

völlig ungetestet und mit dem Hinweis darauf, dass mein Beitrag in 3 Tagen seinen 10 jährigen Geburtstag feiert würde ich Dir vorschlagen das Makro so beizubehalten wie es ist und den Zeilenumbruch mit einem bestimmten Text zu beenden.

Sprich: in der Zeile
if inhalt = „“ then
schreibst Du einfach den Text rein, den Du in jeder Zeile ganz ans Ende schreibst.
Zum Beispiel „Thisistheend“

Und dann eben
if inhalt = „Thisistheend“ then
etc.
Grüße
Munich