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.

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: 2 Gast/Gäste