Clever-Excel-Forum

Normale Version: Spalte automatisch splitten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bin auf meiner Suche nach Hilfe auf diese Forum gestoßen.
Ich weiß nicht, ob das was ich gerne machen würde, überhaupt mit Excel funktioniert.

Ich habe zwei Excel-Datein mit je einer einzigen Spalte.
Diese Spalte hat jedoch Daten in der einen Datei 12.534 Zeilen und in der anderen Datei 5.835.
Jetzt müsste ich diese Datei eigentlich ausdrucken. Das wären im Fall der ersten Datei mal eben fast 300 Seiten.
Ist es möglich diese Spalte automatisch aufzuteilen, dass ich auf jeder Seite dann 5 Spalten habe, wenn ich ausdrucke?
Es handelt sich um Buchsignaturen, die in Reihenfolge erfasst sind. Daher müsste nach Zeile automatisch ein Sprung in die zweite Spalte erfolgen, nach Zeile 101 dann der Wechsel in Spalte drei, usw.
Nach Zeile 250 dann zusätzlich noch der Sprung auf ein neues Blatt....

Funktioniert so etwas?
Und wenn ja wie?

Ich hoffe Ihr versteht was ich vorhabe...habe es nicht so damit so etwas zu erklären.
Moin,

die aus meiner Sicht allereinfachste Lösung: Alle Daten kopieren und in Word einfügen. Dort machst du dann ein 5-spaltiges Layout daraus. Durch beispielsweise Randbreite kannst du regulieren, dass genau 50 Zeilen pro Seite gedruckt werden.

Und ja, das ist auch mit Excel möglich. Da würde ich VBA als Lösung einsetzen, um auch die 50-Zeilen-Vorgabe zu realisieren.

Nachtrag: weniger als 1 Minute Arbeit:
Vielen Dank!
An Word habe ich gar nicht gedacht!
Hi,

hier eine kleine Excel Spielerei,

Code:
Sub teile_alles_mit_sprung_mySplit()
Dim arr
Dim Arr_New()
Dim my_Split As Integer
my_Split = 100 'nach wievielen Zeilen soll ein Block sein
Dim i As Long, y As Long, za As Long, temp As Variant, x As Integer, lng_Col As Long
arr = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
ReDim Preserve Arr_New(5, Int(UBound(arr) / 5) + 2)
lng_Col = Int(UBound(arr) / 5) + 1
Do
For i = 1 To 5
    For y = 1 To WorksheetFunction.Min(my_Split, lng_Col)
        za = za + 1
        On Error Resume Next
        temp = arr(za, 1)
        If Err.Number <> 0 Then temp = ""
        Arr_New(i, y + x) = temp
        On Error GoTo 0
    Next
Next
x = x + y - 1
If (za + my_Split * 5) > UBound(arr) Then
    lng_Col = Int(lng_Col - za / 5)
End If
Loop While za < UBound(arr)
Columns(1).ClearContents
Range("A1").Resize(Int(UBound(arr) / 5) + 2, 5).Value = WorksheetFunction.Transpose(Arr_New)
End Sub