HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
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
Als Antwort auf diesen Beitrag
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
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.