VBA Code-Vereinfachung
#1
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
Antworten Top
#2
Was beinhaltet Zelle B2 ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
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
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • ottotto
Antworten Top
#4
Vielen Dank!
Antworten Top


Gehe zu:


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