AW: Listen nebeneinander, untereinander kopieren
26.03.2014 13:58:30
fcs
Hallo Patrick,
per Formel dürfte das sehr kompliziert werden, da hier ja immer nur 10 Zeilen aus einem größeren Block ausgelesen werden sollen.
Ich denke, dass du da per Makro schneller zu einer Lösung kommst.
Nachfolgend ein Makro, das du bezüglich der Zeilenzahlen ggf. noch anpassen muss.
Gruß
Franz
Sub IncomeBlocks_in_eine_Spalte()
Dim wksQ As Worksheet, wksZ As Worksheet
Dim ZeileQ As Long, SpalteQ As Long
Dim ZeileZ As Long, ZeileZ1 As Long
Dim ZeileQL As Long, SpalteQL As Long
Dim AnzZeilen As Long, AnzSpalten As Long
Set wksQ = ActiveWorkbook.Sheets("PROJECTS")
Set wksZ = ActiveWorkbook.Sheets("Income_List") 'Name Zieltabelle anpassen!!
Application.ScreenUpdating = False
With wksZ
ZeileZ1 = 2 'Startzeile für das Einfügen der Daten im Zielblatt - ggf. anpassen
ZeileZ = .UsedRange.Row + .UsedRange.Rows.Count - 1
If ZeileZ >= ZeileZ1 Then
'Altdaten löschen
.Range(.Rows(ZeileZ1), .Rows(ZeileZ)).Clear
End If
ZeileZ = ZeileZ1
End With
With wksQ
ZeileQL = .UsedRange.Row + .UsedRange.Rows.Count - 1
If ZeileQL >= 28 Then '28 = 1. Zeile des 1. Projektes - ggf anpassen
AnzZeilen = 27 'Anzahl Zeilen pro Projekt - ggf. anpassen!!
AnzSpalten = 8 'Anzahl Spalten pro Projekt - ggf. anpassen!!
SpalteQL = .UsedRange.Column + .UsedRange.Columns.Count - 1
For ZeileQ = 28 To ZeileQL Step AnzZeilen
For SpalteQ = 1 To SpalteQL Step AnzSpalten
.Range(.Cells(ZeileQ + 4, SpalteQ), .Cells(ZeileQ + 4 + 9, SpalteQ + AnzSpalten - 2)). _
Copy
With wksZ
.Cells(ZeileZ, 1).PasteSpecial Paste:=xlPasteFormats
.Cells(ZeileZ, 1).PasteSpecial Paste:=xlPasteValues
ZeileZ = ZeileZ + 10
End With
Next
Next
Application.CutCopyMode = False
wksZ.Activate
Cells(ZeileZ1, 1).Select
End If
End With
Application.ScreenUpdating = True
End Sub