Microsoft Excel

Herbers Excel/VBA-Archiv

mehrere Spalten untereinander


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 Sub
Da 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.


gruß
Regina


  

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!


Beiträge aus dem Excel-Forum zum Thema "mehrere Spalten untereinander"