Betrifft: mehrere Spalten untereinander
von: Jakob
Geschrieben am: 23.09.2019 16:06:26
Hallo zusammen,
Ich möchte euch bei folgendem um eure Hilfe bitten:
Ich stehe irgendwie auf der Leitung, und finde keinen passenden VBA-Code, den ich zu meinem Beispiel abändern kann (so weit reichen meine VBA Kenntnisse, nur in diesem Fall irgendwie nicht). Und bin nach einigen Versuchen schon recht frustriert.
Die Beispieltabelle habe ich angehängt. Es geht darum, mehrere Spalten untereinander in eine Spalte zu kopieren, d.h. die Bereiche (B6-B33, C6-33, D6-33 ...). Im Blatt "Ziel" ist dies beispielhaft gezeigt.
https://www.herber.de/bbs/user/132152.xlsx
Da ich viele solcher Blätter habe, brauche ich einen VBA-Code dafür, da dies händisch ausarten würde.
Viele, vielen Dank!
Grüße, Jakob
Betrifft: AW: mehrere Spalten untereinander
von: Regina Resch-Jansen
Geschrieben am: 23.09.2019 16:48:17
Moin, erstmal eine Rückfrage:
Sollen alle Daten aus dem ersten Blatt in das Zielblatt übertragen werden, oder nur der oberste Block (A6 bis F32)?
Gruß
Regina
Betrifft: AW: mehrere Spalten untereinander
von: Jakob
Geschrieben am: 23.09.2019 16:52:37
Liebe Regina
Jeder Block steht für ein Jahr (wie in Spalte A jeweils darüber ersichtlich). Sollte es nicht zu aufwendig sein, dann so: 2014, 2015, 2016, 2017, 2018 in die Spalten D, E, F, G, H.
Ich müsste das mit 5 Makros machen, sollt es dafür auch eine elegantere Lösung geben, ja bitte!
Danke!
LG, Jakob
Betrifft: AW: mehrere Spalten untereinander
von: Regina Resch-Jansen
Geschrieben am: 23.09.2019 17:16:09
Hallo Jakob,
das sollte so gehen:
Public Sub uebtrag() Dim lng_zeile_ziel As Long Dim lng_zeile_quelle As Long Dim lng_spalte As Long Dim lng_spalte_ziel As Long Dim obj_wks_ziel As Worksheet Dim obj_wks_quelle As Worksheet Dim lng_letzte_zeile As Long Dim lng_zaehler As Long Set obj_wks_ziel = ThisWorkbook.Worksheets("Ziel") Set obj_wks_quelle = ThisWorkbook.Worksheets("Input Indicators") lng_zeile_quelle = 6 lng_letzte_zeile = 32 lng_spalte_ziel = 4 For lng_zaehler = 1 To 5 lng_zeile_ziel = 3 Do Until lng_zeile_quelle > lng_letzte_zeile For lng_spalte = 2 To 6 If lng_zaehler = 1 Then obj_wks_ziel.Cells(lng_zeile_ziel, 1) = obj_wks_quelle.Cells(lng_zeile_quelle, _ 1) obj_wks_ziel.Cells(lng_zeile_ziel, 2) = obj_wks_quelle.Cells(4, lng_spalte) obj_wks_ziel.Cells(lng_zeile_ziel, 3) = obj_wks_quelle.Cells(5, lng_spalte) End If obj_wks_ziel.Cells(lng_zeile_ziel, lng_spalte_ziel) = obj_wks_quelle.Cells( _ lng_zeile_quelle, lng_spalte) lng_zeile_ziel = lng_zeile_ziel + 1 Next lng_zeile_quelle = lng_zeile_quelle + 1 Loop lng_letzte_zeile = lng_letzte_zeile + 35 lng_zeile_quelle = lng_zeile_quelle + 8 lng_spalte_ziel = lng_spalte_ziel + 1 Next End SubDa Deine Liste zahlreiche verbundene zellen enthält, die immer doof auszulesen sind, habe ich die Jahreszahlüberschriften im Zielblatt händisch eingetragen. So sollten aber die Wete von 2014 bis 2018 sauber rüber kommen.
Betrifft: AW: mehrere Spalten untereinander
von: Jakob
Geschrieben am: 24.09.2019 08:47:50
Das ist große VBA-Kunst!
Vielen, vielen Dank @Regina!