Exel spalten in Zeilen transpon. mit Zeilenumbruch

Hallo Leute ich hab mich hier angemeldet weil ich einfach nicht weiter komme.

ich habe folgendes Problem:

Aus einer xls-Datei heraus werden Daten in Excel geladen. Überflüssige Spalten werden mit hilfe eines Macros bereits gelöscht. Die wichtigen Daten stehen nun Zeilenweise untereinander.
Bsp.:
Herr
Karl
August

Diese sollen aber Spaltenweise aufgelistet werden

Bsp.:

Herr Karl August

Das bekomme ich für einen Datensatz per makro auch hin. Da dies aber viele Datensätze sind wäre es schön wenn das mit einem Makro gehen würde.

Jeder Datensatz hat 13 Zeilen. Danach soll excel automatisch in die nächste zeile springen.

Bsp.:

Herr Karl August
Frau Simone Stephens
Herr Sowieso Sonstwas

Von VB hatte ich bis vor 3 Tagen keine Ahnung. Daher reist mir bitte nicht direkt den Kopf ab. Onkel Google hat mir schon viel weitergeholfen aber am ende hat es für mich nicht ganz gereicht

es müsste eine Mischung aus den sachen hier sein:

Sheets(„Tabelle1“).Select
ActiveCell.Range(„A2:A14“).Select
Selection.Copy
Sheets(„Tabelle2“).Select
ActiveCell.Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

wobei es hier komischerweise davon abhängt welche zelle ich makiert habe

und dieser Schleife

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

Doch diese Schleife macht es genau andersrum und ohne Zeilenumbruch.

Ich hoffe ich habe keine angaben vergessen.

Danke schon im Vorraus für eure Hilfe

Hallo Gandalf,

benutze nicht den code-Tag, nimm den pre-Tag.

Versuchs mal so:

Option Explicit
'
Sub trans()
Dim Zei1 As Long, Zei2 As Long, wks2 As Worksheet
Set wks2 = Worksheets("Tabelle2")
'wks2.UsedRange.Clear
Zei2 = 1
With Worksheets("Tabelle1")
 .Cells(1, 1).Copy Destination:=wks2.Cells(1, 1)
 For Zei1 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row Step 13
 Zei2 = Zei2 + 1
 .Cells(Zei1, 1).Resize(13, 1).Copy
 wks2.Cells(Zei2, 1).PasteSpecial , Transpose:=True
 Next Zei1
End With
End Sub

Gruß
Reinhard

Hallo Reinhard,
danke für die Prompte antwort.

sehe ich das richtig das dieser Codeabschnitt die Spalte festlegt aus welcher gelesen werden soll? Denn bei mir ist es spalte E(5)

.Cells(1, 1).Copy Destination:=wks2.Cells(1, 1)

habs dann so probiert

.Cells(1, 5).Copy Destination:=wks2.Cells(1, 1)

und dann hat er mir nur den einen wert ausgegeben. Echt zu blöd bin.

Sonst ist es genau das was ich suche.

P.S. hast du auch noch was um eine wiederkehrende ID zu trimmen und dem Datensatz dann zu zuordnen?

ID Value
55 Herr
55 Meiser
55 Hans
nach

ID Anrede Name Vorname
55 Herr Meiser Hans

wäre echt klasse.

Vielen vielen Dank schon im Vorraus.

Hab schon gesehen das du hier vielen hilfst. Denn das Forum war auch anlaufpunkt über google

Hallo Gandalf,

sehe ich das richtig das dieser Codeabschnitt die Spalte
festlegt aus welcher gelesen werden soll? Denn bei mir ist es
spalte E(5)

Spalte E? (E5 ist eine zelle keine Spalte)

.Cells(1, 1).Copy Destination:=wks2.Cells(1, 1)

Aus deinem Code schloß ich daß du in A1 eine Überschrift hast, diese Überschrift kopiere ich nach Tabelle2!A1.

Gleichwertig wäre gewesen:
.Range(„A1“).Copy Destination:=wks2.Range(„A1“)

Aber in VBA ist Cells() grad in Schleifen besser zu handeln als Range(), deshalb muß man es als VBAler erlernen Cells() und Range() genauso schnell lesen zu können.

habs dann so probiert

.Cells(1, 5).Copy Destination:=wks2.Cells(1, 1)

und dann hat er mir nur den einen wert ausgegeben.

Ja und, genau das steht im Code!?

Echt zu blöd bin.

Kwark. Für 3 Tage VBA bist du sehr fit. garantiert kennst du andere Sprachen.

Nochmal, mein Code geht davon aus daß du deine Daten untereinander in Spalte A von Blatt1 hast.
A1 ist die Überschrift.
A2:A14 der erste 13er Block
A15:A27 der zweite 13er Block
usw.

Mein Code kopiert A1 nach Tabelle2!A1.
Dann transponiert er A2:A14 nach Tabelle2!A2:M2
Dann transponiert er A15:A27 nach Tabelle2!A3:M3
usw.

Den Code anpassen wenn bei dir die Tabellen anders aufbebaut sind mußt du selbst, ich weiß ja nicht was vorliegt und kann nur aufgrund deiner Ausgangsfrage erraten was vorliegen könnte.

ID Value
55 Herr
55 Meiser
55 Hans

Und wie gehts nach
55 Hans
weiter? Ansatzlos mit dem nächsten Datensatz, Leerzeilen, sonstwas?
Ein Datensatz immer 3 Zeilen hoch?

Du könntest auch mit rapidshare o.ä. ( FAQ:2606 ) eine beispielmappe hochladen, wo du in Tab1 Beispieldaten hast und in Tab2 manuell einträgst wie sie nach dem Makro aussehen sollen.

Hab schon gesehen das du hier vielen hilfst. Denn das Forum
war auch anlaufpunkt über google

Schön daß du hierher gefunden hast :smile:
Hier ist ein Wissensaustauschforum. Mit ein Grundgedanke ist, und davon lebt letztlich auch das Forum.
Du kriegst in diesem Brett sofern möglich Hilfe. Dafür wäre es nett, du bist vielleicht Autobastler und hast da gute Ahnung, dann helfe jmdn. im Autobrett.
Gibt hier viele Bretter…

Gruß
Reinhard

Hallo Reinhard,

Kwark. Für 3 Tage VBA bist du sehr fit. garantiert kennst du
andere Sprachen.

Ja da hast du recht. Kann nen bissel Java,PHP und SQL (wobei ich das nicht als Sprache ansehe)

ID Value
55 Herr
55 Meiser
55 Hans

Und wie gehts nach
55 Hans
weiter? Ansatzlos mit dem nächsten Datensatz, Leerzeilen,
sonstwas?
Ein Datensatz immer 3 Zeilen hoch?

Ein Datensatz ist immer 13 Sprünge groß. Also A2:A14
Danach kommt weder leerzeile noch sonstwas. Fängt direkt wieder mit der neuen ID und den neuen Datensätzen an.

Also bisher ist folgendes:

-Kürzen der Daten aus der XML Datei (über 20
Spalten lang, gekürzt auf 5
Spalten(ID;Submitted;Art(Helfer);Beschreibung(Anrede
,Name,Vorname);Value(55, Herr, Hans,Meiser))

-Transponieren der „Values“ (Herr,Hans,Meiser)

  • Transponieren der Beschreibung als Überschriften
    in Tabelle 2

Was noch fehlt:

  • die einmalige ID (Könnte mir vorstellen was mit Count oder??)
  • Button der das komplette Makro anstößt (schaff
    ich selbst)

Vielen Dank wieder im Vorraus
und Grüße gandalf