Clever-Excel-Forum

Normale Version: VBA Code-Vereinfachung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich bin neu im Thema VBA-Programmierung und habe folgenden kleinen Code geschrieben:

Sub ListeZuTabelleUmformen()
Range("C1") = Range("B1")
Range("C2") = Range("B6")
Range("C3") = Range("B11")
Range("C4") = Range("B16")

Range("D1") = Range("B3")
Range("D2") = Range("B8")
Range("D3") = Range("B13")
Range("D4") = Range("B18")

Range("E1") = Range("B4")
Range("E2") = Range("B9")
Range("E3") = Range("B14")
Range("E4") = Range("B19")

Range("F1") = Range("B5")
Range("F2") = Range("B10")
Range("F3") = Range("B15")
Range("F4") = Range("B20")

End Sub

Nun ist der Code leider sehr umständlich, auch da die Liste am Ende über 1000 Zeilen hat. Und deshalb wollte fragen, ob jemand ein Vorschlag zur Vereinfachung hätte, so dass es nur wenige Zeilen Code sind, die die Liste zu einer Tabelle umwandeln.
Spalte B Endet bei "B1120", danach soll auch die Tabelle fertig sein.

Viele Grüße und vielen Dank im voraus
Otto
Was beinhaltet Zelle B2 ?
Hi,

da das mit einer sehr einfachen Formel machbar ist, braucht es keinen VBA-Code:

Code:
=INDEX($B:$B;(ZEILE()-1)*5+SPALTE(A$1)+(SPALTE()>3))
in C1 und nach unten und rechts ziehen.

oder so:

Code:
Sub Umwandeln()
Set Rng = Range(Cells(1, 3), Cells(4, 3))
Set rng2 = Range(Cells(1, 3), Cells(4, 279))
Range("C1").FormulaLocal = "=INDEX($B:$B;(ZEILE()-1)*5+SPALTE(A$1)+(SPALTE()>3))"
Range("C1").AutoFill Destination:=Rng
Rng.AutoFill Destination:=rng2
rng2.Value = rng2.Value
End Sub
Vielen Dank!