Ich vermute mal, dass es sich um einen Jahreskalender handelt und die Daten nicht bei Spalte Y aufhören. Mit VBA auf diesem Weg:
Code:
Sub uebertragen() Dim i As Integer, j As Integer Application.ScreenUpdating = False
j = 5 With ActiveSheet For i = 5 To .Cells(6, .Columns.Count).End(xlToLeft).Column Step 7 .Range(.Cells(7, i), .Cells(7, i + 1)).Copy .Cells(16, j).PasteSpecial Paste:=xlValues j = j + 2 Next i End With
Application.CutCopyMode = xlCopy Application.ScreenUpdating = True End Sub
Schöne Grüße Berni
Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:1 Nutzer sagt Danke an MisterBurns für diesen Beitrag 28 • Frank_74
25.04.2019, 09:46 (Dieser Beitrag wurde zuletzt bearbeitet: 25.04.2019, 10:25 von Frank_74.)
@ MisterBurns
Ja, es geht sich um einen Jahreskalender.
Das Macro funktioniert auch (in der Beispieltabelle).
Wie hast Du in dem Macro den Startpunkt (hier E7) definiert? Wie hast Du festgelegt wo es hin kopiert werden soll?
for i = 5 --> die 5 ergibt das E ? Bei Spalte F müsste da also eine 6 stehen?
Danke!
EDIT:
Habe es mit try&error hinbekommen.
Danke noch mal
Muss nun nur noch testen ob es in der "richtigen" Tabelle auch klappt. In den Feldern stehen nämlich "Formeln" und es soll da natürlich nur der Wert kopiert werden.
15.05.2019, 11:02 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2019, 11:07 von MisterBurns.)
Schau dir diese Zeilen an:
Code:
j = 5 'Zielspalte (zB 5 = Spalte E) With ActiveSheet For i = 5 To .Cells(6, .Columns.Count).End(xlToLeft).Column Step 7 'Schleife für den zu kopierenden Bereich. Beginnt bei Spalte 5 und läuft bis zur letzten gefüllten Spalte in Zeile 6 'i ist die Variable für die Spalte des zu kopierenden Bereichs .Range(.Cells(7, i), .Cells(7, i + 1)).Copy 'Kopiert den Bereich Spalte i, Zeile 7 bis Spalte i+1, Zeile 7 .Cells(16, j).PasteSpecial Paste:=xlValues 'Fügt den kopierten Bereich in Spalte j, Zeile 16 ein j = j + 2 'erhöht den Spaltenzähler j um 2. j ist die Variable für die Zielspalte Next i End With