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.

Zeilentransformation
#1
Hallo liebe Excel-Cracks,
ich habe folgendes Problem. Ich habe in den Spalten A,B,C Text stehen. Dieser soll per VBA derart
transformiert werden, dass alles in der Spalte A steht. Und zwar so:
in Zeile 1 bis 3: A1,B1, C1
in Zeile 4 bis 6: A2,B2, C2
in Zeile 7 bis 9: A3,B3, C3 usw.

Habe leider wenig Ahnung von VBA. Kriegt einer von Euch lieben Leuten so etwas hin?
Vielen Dank für eure Mühe.[/font][/size]
Antworten Top
#2
Hallo,

und das muss ein Makro sein oder darf es auch per Formel gehen?

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1A1B1C1 A1
2A2B2C2 B1
3A3B3C3 C1
4    A2
5    B2
6    C2
7    A3
8    B3
9    C3

ZelleFormel
E1=INDEX(A:C;(ZEILE(A1)-1)/3+1;REST(ZEILE(A1)-1;3)+1)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Anschliessend (optional):

- den Bereich mit den Formeln markieren
- mit Strg-C in die Zwischenablage kopieren
- rechte Maus - Inhalte einfügen - Werte - Ok

Dadurch werden die Formeln im markierten Bereich in Werte umgewandelt und man kann jetzt die bisherige Spalte löschen
Gruß
Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Peter für diesen Beitrag:
  • LoreHaubrich
Antworten Top
#3
Brauche das Ganze als Makro in VBA aber trotzdem vielen Dank für die Formel!
Antworten Top
#4
Hallo Lore,

mit VBA könnte dieses Makro Deine Excel-Daten in die gewünschte Reihenfolge bringen:

Code:
Option Explicit

Sub transformieren()
'Transformiert den Bereich A:C in die Spalte A
'=INDEX(A:C;(ZEILE(A1)-1)/3+1;REST(ZEILE(A1)-1;3)+1)
'Variablendeklarationen
'Variant-Array
Dim arrDaten, arrTrans
'Long
Dim loLetzte&
'integer
Dim iCnt%

'letzte benutzte Zelle annhand Spalte A feststellen
loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
'Daten in Array uebernehmen
arrDaten = Range(Cells(1, 1), Cells(loLetzte, 3))
'arrTrans entsprechned Anzahl Datenzellen redimensionieren
ReDim arrTrans(1 To loLetzte * 3)
'Schleife über alle Daten
For iCnt = 1 To loLetzte * 3 Step 3
    'Inhalt Zelle aus Spalte A uebernehmen
    arrTrans(iCnt) = arrDaten(WorksheetFunction.RoundUp(iCnt / 3, 0), 1)
    'Inhalt Zelle aus Spalte B uebernehmen
    arrTrans(iCnt + 1) = arrDaten(WorksheetFunction.RoundUp(iCnt / 3, 0), 2)
    'Inhalt Zelle aus Spalte C uebernehmen
    arrTrans(iCnt + 2) = arrDaten(WorksheetFunction.RoundUp(iCnt / 3, 0), 3)
'Ende Schleife über alle Daten
Next
'Datenbereich leeren
Range(Cells(1, 1), Cells(loLetzte, 3)).ClearContents
'transponierte Daten eintragen
Cells(1, 1).Resize(UBound(arrTrans), 1) = WorksheetFunction.Transpose(arrTrans)
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • LoreHaubrich
Antworten Top
#5
Moin,

markiere den Datenbereich der transponiert werden soll und führe das folgende Makro aus:

Code:
Option Explicit
Option Base 1

Sub TransferData()
   Dim aData()
   Dim anzZe As Integer, anzSp As Integer
   Dim Ze As Integer, Sp As Integer, z As Integer
  
   aData = Selection
   z = 1
   With Selection
      anzZe = .Rows.Count
      anzSp = .Columns.Count
      .ClearContents
   End With
   ReDim aData2(anzZe * anzSp)
   For Ze = 1 To anzZe
      For Sp = 1 To anzSp
         Cells(z, 1) = aData(Ze, Sp)
         z = z + 1
      Next Sp
   Next Ze
End Sub

Das Ergebnis wird dann in A1 und die Zellen darunter geschrieben.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
[-] Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:
  • LoreHaubrich
Antworten Top
#6
Vielen herzlichen Dank für Eure Hilfe. Einfach Super!!
Antworten Top


Gehe zu:


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