HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage

Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 07:27:16
VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo zusammen,

ich benötige eure Hilfe bei der Befüllung einer Tabellen nach einem bestimmten Muster.

Ich habe eine Datentabelle mit >1000 Zeilen und 50 Spalten, und möchte 35 Einträge aus jeder Zeile in eine neue Tabelle untereinander schreiben,
wobei die erste Zelle in der neuen Tabelle immer den entsprechenden Wert aus Spalte A für jeden der 35 Einträge einer Zeile beibehällt.

Folgenden Code habe ich bereits gefunden, könnt ihr mir bitte Helfen diesen anzupassen oder
ihr habt eventuell noch eine bessere Idee um den Code so schnell wie möglich zu machen.

Sub DatenAusfuellen()

Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Dim letzteZeileQuelle As Long
Dim letzteZeileZiel As Long
Dim i As Long

' Tabellenblätter definieren (Namen ggf. anpassen)
Set wsQuelle = ThisWorkbook.Sheets("Tabelle1")
Set wsZiel = ThisWorkbook.Sheets("Tabelle2")

' Letzte belegte Zeile in der Quelle ermitteln (Spalte A)
letzteZeileQuelle = wsQuelle.Cells(wsQuelle.Rows.Count, "A").End(xlUp).Row

' Schleife, die jede Zeile von Zeile 2 bis zum Ende durchläuft
For i = 2 To letzteZeileQuelle

' Bedingung: Wenn Spalte A nicht leer ist, dann...
If wsQuelle.Cells(i, 1).Value <> "" Then

' Nächste freie Zeile im Ziel-Tabellenblatt ermitteln
letzteZeileZiel = wsZiel.Cells(wsZiel.Rows.Count, "A").End(xlUp).Row + 1

' Daten aus der Quelle in das Ziel übertragen
' Spalte A (Quelle) -> Spalte A (Ziel)
wsZiel.Cells(letzteZeileZiel, 1).Value = wsQuelle.Cells(i, 1).Value
' Spalte B (Quelle) -> Spalte B (Ziel)
wsZiel.Cells(letzteZeileZiel, 2).Value = wsQuelle.Cells(i, 2).Value

End If
Next i

MsgBox "Übertragung abgeschlossen!", vbInformation
End Sub
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 10:03:35
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo,

Nachfrage: Es soll aus Quelltabelle der Wert aus Zelle in Spalte A der jeweiligen Zeile 35-mal in die Zieltabelle geschrieben werden. Alle anderen Spalten sollen in Zieltabelle leer bleiben?

Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 10:43:38
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo,

hier mal für beide Wege:


Option Explicit
Const StartQuelle As Long = 2
Const iZeilen As Long = 35

Sub UebertragenAlleSpalten()
Dim i&, j&, k&, lz&, arrZ(), arrQ: arrQ = Tabelle1.Cells(1, 1).CurrentRegion.Offset(1)
ReDim arrZ(1 To 35, 1 To Tabelle1.Cells(StartQuelle - 1, Columns.Count).End(xlToLeft).Column)
For i = LBound(arrQ) To UBound(arrQ) - 1
For j = 1 To Tabelle1.Cells(StartQuelle - 1, Columns.Count).End(xlToLeft).Column
For k = 1 To iZeilen
arrZ(k, j) = arrQ(i, j)
Next k
Next j
With Tabelle2
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lz, 1).Resize(iZeilen, UBound(arrZ, 2)) = arrZ
End With
Next i
End Sub


Sub UebertragenNurA()
Dim i&, j&, lz&, arrZ(), arrQ: arrQ = Tabelle1.Range("A" & StartQuelle & ":A" & Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row).Value
ReDim arrZ(1 To 35, 1 To 1)
For i = LBound(arrQ) To UBound(arrQ)
For j = 1 To iZeilen
arrZ(j, 1) = arrQ(i, 1)
Next j
With Tabelle2
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lz, 1).Resize(iZeilen, 1) = arrZ
End With
Next i
End Sub


Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 11:01:50
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Uwe,

danke für die schnelle Antwort ich schau es mir an.

Gruß Tobi
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 12:00:20
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Uwe,

bitte entschuldige, dass ich mich so schlecht ausgedrückt habe.

Der Anfang von deinem "Sub UebertragenAlleSpalten()" funktioniert so wie ich mir es vorgestellt habe.
Die Spalten A bis D würde ich gern so übernehmen wollen.

Ab Spalte E möchte ich gerne Namen vergeben wollen, welche in einer separaten Tabelle3 stehen (A1 bis A35) und sich immer wiederholen (für alle der 35 Zeilen-Datensätze).

Und in der Spalte F möchte ich gern die Werte aus der Zeile x (z.B. Zeile 2) in folgendem Format stehen haben.

am Beispiel Quelldatei Zeile 2:
Zieldatei Spalte F2 = Wert aus Quelldatei M2
Zieldatei Spalte F3 = Wert aus Quelldatei N2
Zieldatei Spalte F4 = Wert aus Quelldatei O2
Zieldatei Spalte F5 = Wert aus Quelldatei P2
Zieldatei Spalte F6 = Wert aus Quelldatei Q2
.
.
.
Zieldatei Spalte F32 = Wert aus Quelldatei AQ2
Zieldatei Spalte F33 = Wert aus Quelldatei AR2
Zieldatei Spalte F34 = Wert aus Quelldatei AS2
Zieldatei Spalte F35 = Wert aus Quelldatei AT2
Zieldatei Spalte F36 = Wert aus Quelldatei AU2

Danach für Zeile 3 und folgende, das selbe Shema wie für Zeile 2.

Danke das du dir für mein Problem Zeit nimmst.

Gruß Tobi










Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
daniel
29.06.2026 12:44:02
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hi
wo soll denn der erste Wert aus Zeile 3 hin?

a) unter die Werte, also Quelle M3 = Ziel F37
b) neben die Werte, also Quelle M3 = Ziel G3

im Fall a) solltest du dir mal die Funktion ZUSPALTE näher anschauen
im Fall b) wäre MTRANS deine Funktion.

Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 13:03:53
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo,

- welche Spalte E? Quelle oder Ziel
Zeile x gibt es nicht, da Zeilen Nummern haben.

Baue eine Demodatei entsprechenden anonymisierten Daten Ausgangsdaten in Tabelle1, Wunschergebnis in Tabelle2 und Namensliste in Tabelle3 und lade diese bitte hier hoch.

Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 13:14:32
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Uwe,

Spalte E in der Zieldatei und mit Zeile x (also 1, 2, etc.) war die jeweilige Zeile gemeint welche gerade abgefragt wird.

Eine Beispieldatei kann ich erst später erstellen, sorry.

Gruß Tobi
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 13:51:29
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Ich hoffe ich habe es richtig verstanden, dann wäre es so:



Option Explicit
Const StartQuelle As Long = 2
Const iZeilen As Long = 35

Sub UebertragenAlleSpalten()
Dim i&, j&, k&, lz&, arrZ(), arrSP(), arrTmp(), arrQ: arrQ = Tabelle1.Cells(1, 1).CurrentRegion.Offset(1)
ReDim arrZ(1 To 35, 1 To Tabelle1.Cells(StartQuelle - 1, Columns.Count).End(xlToLeft).Column)
For i = LBound(arrQ) To UBound(arrQ) - 1
arrTmp = Tabelle1.Range("M" & StartQuelle & ":AU" & StartQuelle).Value
For j = 1 To Tabelle1.Cells(StartQuelle - 1, Columns.Count).End(xlToLeft).Column
For k = 1 To iZeilen
If j < 5 Then
arrZ(k, j) = arrQ(i, j)
ElseIf j = 5 Then
arrZ(k, j) = Tabelle3.Cells(k, 1)
Else
If j < 41 Then arrZ(k, j) = arrTmp(1, j - 5) 'Abfrage da Spalten aus Quelle übersprungen werden.
End If
Next k
Next j
With Tabelle2
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lz, 1).Resize(iZeilen, UBound(arrZ, 2)) = arrZ
End With
Next i
End Sub


Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 13:57:04
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Sorry, da war noch ein Fehler drin.

so:


Option Explicit
Const StartQuelle As Long = 2
Const iZeilen As Long = 35

Sub UebertragenAlleSpalten()
Dim i&, j&, k&, lz&, arrZ(), arrSP(), arrTmp(), arrQ: arrQ = Tabelle1.Cells(1, 1).CurrentRegion.Offset(1)
ReDim arrZ(1 To 35, 1 To Tabelle1.Cells(StartQuelle - 1, Columns.Count).End(xlToLeft).Column)
For i = LBound(arrQ) To UBound(arrQ) - 1
arrTmp = Tabelle1.Range("M" & i + StartQuelle - 1 & ":AU" & i + StartQuelle - 1).Value
For j = 1 To Tabelle1.Cells(StartQuelle - 1, Columns.Count).End(xlToLeft).Column
For k = 1 To iZeilen
If j < 5 Then
arrZ(k, j) = arrQ(i, j)
ElseIf j = 5 Then
arrZ(k, j) = Tabelle3.Cells(k, 1)
Else
If j < 41 Then arrZ(k, j) = arrTmp(1, j - 5) 'Abfrage da Spalten aus Quelle übersprungen werden.
End If
Next k
Next j
With Tabelle2
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lz, 1).Resize(iZeilen, UBound(arrZ, 2)) = arrZ
End With
Next i
End Sub


Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 14:12:43
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Uwe,

es wird immer besser.
Das einzige Problem was noch ist, dass Spalte F aus der Zieldatei die letzte Spalte ist.
Die Werte aus dem Beispiel möchte ich gerne untereinander haben, deshalb die jeweils 35 Zeilen.

am Beispiel Quelldatei Zeile 2:
Zieldatei Spalte F2 = Wert aus Quelldatei M2
Zieldatei Spalte F3 = Wert aus Quelldatei N2
Zieldatei Spalte F4 = Wert aus Quelldatei O2
Zieldatei Spalte F5 = Wert aus Quelldatei P2
Zieldatei Spalte F6 = Wert aus Quelldatei Q2
.
.
.
Zieldatei Spalte F32 = Wert aus Quelldatei AQ2
Zieldatei Spalte F33 = Wert aus Quelldatei AR2
Zieldatei Spalte F34 = Wert aus Quelldatei AS2
Zieldatei Spalte F35 = Wert aus Quelldatei AT2
Zieldatei Spalte F36 = Wert aus Quelldatei AU2

Gruß Tobi
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 19:36:14
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Uwe,

hier ist meine Beispieldatei:
https://www.herber.de/bbs/user/180854.xlsx

Gruß Tobi
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 20:00:38
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Tobi,

das müsste passen:


Option Explicit
Const StartQuelle As Long = 2
Const iZeilen As Long = 35
Const iSpalten As Long = 6

Sub UebertragenAlleSpalten()
Dim i&, j&, k&, lz&, arrZ(), arrSP(), arrTmp(), arrQ: arrQ = Tabelle1.Cells(1, 1).CurrentRegion.Offset(1)
ReDim arrZ(1 To 35, 1 To iSpalten)
For i = LBound(arrQ) To UBound(arrQ) - 1
arrTmp = Tabelle1.Range("M" & i + StartQuelle - 1 & ":AU" & i + StartQuelle - 1).Value
For j = 1 To 6
For k = 1 To iZeilen
If j < 5 Then
arrZ(k, j) = arrQ(i, j)
ElseIf j = 5 Then
arrZ(k, j) = Tabelle3.Cells(k, 1)
Else
arrZ(k, j) = arrTmp(1, k) 'Abfrage da Spalten aus Quelle übersprungen werden.
End If
Next k
Next j
With Tabelle2
lz = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lz, 1).Resize(iZeilen, UBound(arrZ, 2)) = arrZ
End With
Next i
End Sub

Es ginge auch mit Power Querry.
Wenn du nicht in der Zieltabelle im Ausgabebereich händisch Änderungen vornimmst könnte man dies auch per LET(MAP(LAMBDA))HSTAPELN) als Formellösung machen.

Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Alwin Weisangler
29.06.2026 20:09:12
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Zur Ergänzung: In deiner Beispieldatei sind die Modulnamen in Englisch Sheet1 Sheet2 ...
Die Prozedur die ich dir gezeigt habe greift aus deutsche Modulnamen zu. Tabelle1, Tabelle2...

Falls die produktive Datei auch englische Modulnamen hat musst du diese ggf. in der Prozedur ändern oder die Modulnamen anpassen.

Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Excel gut - VBA nein
Tobi_84
29.06.2026 20:30:55
AW: VBA: Konvertierung einer Tabelle in eine bestimmte Vorlage
Hallo Uwe,

jetzt passt es.
Ich danke dir vielmals für deine Geduld und Zeit.
Einen schönen Abend.

Gruß Tobi