1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel: Hilfe PageBreaks......

Discussion in 'Office-Programme' started by sTeFaN1989, Aug 28, 2009.

Thread Status:
Not open for further replies.
  1. sTeFaN1989

    sTeFaN1989 Byte

    Hallo Leute,

    nachdem ich mit Urs schon ein schönes Makro ausgearbeitet habe:bet:, was Bereiche verstecken kann, habe ich nun das Problem mit den Seitenumbrüchen.
    Es kommt vor, dass Seitenumbrüche direkt in einem Bereich (zBsp Eine ´Wertetabelle -> zBsp Bereichsname "A") ist. D.h die Tabelle wird gespalten und die einzelnen Hälften sind auch verschiedenen Seiten. Dies ist natürlich äußerst ungünstig.

    Urs hatte sich mit dem Problem auch schon beschäftigt, jedoch wurde keine Lösung gefunden.

    Ich poste hier mal den Quelltext des Makros und hoffe auf Ideen :)

    Code:
    Private Sub Makro_Click()
    
    Dim rngAuswahl As Range, xCell As Range, strX As String
    
    Set rngAuswahl = ActiveSheet.Names("Auswahl").RefersToRange
    
        ActiveSheet.Rows.Hidden = False
        ActiveSheet.ResetAllPageBreaks
    
    For Each xCell In rngAuswahl
        If LCase(Trim(xCell.Value)) <> "x" Then
            strX = Left(xCell.Offset(0, -6).Value, 1)
            Set xRange = ActiveSheet.Names(strX).RefersToRange
            ActiveSheet.Rows(xRange.Rows.Row & ":" & xRange.Rows.Row + xRange.Count - 1). _
                EntireRow.Hidden = True
        End If
    Next
    
    End Sub
    
    
    
    '
    'Funktioniert noch nicht... Pagebreaks werden nicht gesetzt...
    'Private Sub EssaiPageBreaks()
    '                    'Pagebreak nie innerhalb von gewissen benanntem Bereichen
    'Dim n As Name, rNum  ' As Range
    'Dim totRows As Integer, maxRowsPerPage As Integer
    '
    'totRows = 0
    'maxRowsPerPage = 50
    '
    'With Worksheets("Protection")
    '                    'alte manuelle Umbrüche löschen
    '    .ResetAllPageBreaks
    '    With .PageSetup
    '                    'auf Seitenbreite anpassen, Länge offen...
    '        .Zoom = False
    '        .FitToPagesTall = 100
    '        .FitToPagesWide = 1
    '    End With
    '
    '    For Each n In ActiveWorkbook.Names
    '                        'nur bearbeiten, wenn Name aus einem einzigen Buchstaben besteht
    '        If Len(n.Name) = 1 Then
    '                        'wenn benannter Bereich NICHT versteckt ist
    '            If Range(n).EntireRow.Hidden = False Then
    '                        'Zeilenzahl aufrechnen
    '                totRows = totRows + Range(n).Rows.Count
    '                        'wenn Pagebreak innerhalb Bereich wäre
    '                If totRows > maxRowsPerPage Then
    '                            'oberste Bereichszeilen-Nummer    für Versuche..
    '                    rNum = Range(n).Rows(1).Row
    '                            'oberhalb erster Zeile Pagebreak setzen
    '                            'Versuche, zum Einfügen des Pb...
    'bis hier alles OK, sagt Urs
    'ab hier funktionierts einfach nicht > keine Variante setzt Pagebreaks
    '                    .Rows(rNum).PageBreak = xlPageBreakManual
    '                    .HPageBreaks.Add before:=Range(Range(n).Rows(1).Address)
    '                    .HPageBreaks.Add before:=Rows(rNum & ":" & rNum)
    '
    '
    '                        'totRow nachführen
    '                    totRows = Range(n).Rows.Count
    '                End If
    '            End If
    '        End If
    '    Next
    '
    'End With
    '
    'End Sub
    Mein Chef will unbedingt, dass die Pagebreaks automatisch gesetzt werden :(

    Man brauch Praktisch eine Art Verbot, dass keine Pagebreaks innerhalb von definierten Bereichen zulässt.

    MfG sTeFaN...bin verzweifelt.......:bet:
     
Thread Status:
Not open for further replies.

Share This Page