Microsoft Excel

Herbers Excel/VBA-Archiv

Bedingter Seitenumbruch per VBA | Herbers Excel-Forum


Betrifft: Bedingter Seitenumbruch per VBA von: Murat
Geschrieben am: 15.01.2010 16:37:57

Hallo allerseits,

habe folgendes Problem, Inhalt der Tabelle / Arbeitsblattes erfordert ca. 2700 Zeilen.
Die ersten 7 Zeilen sollen auf alle Seiten gedruckt werden. Das habe ich bei
der Seiteneinrichtung auch so eingestellt. Die folgenden Zeilen haben in Spalte F
Ihr Sortierkennzeichen, d.h. erstes Sortierkennzeichen in 'F8'.

Ich möchte das bei Klick auf Seitenansicht ein Makro ausgeführt wird, welcher bei
Wertewechsel in Spalte F einen (manuellen) Seitenumbruch ausführt. Hiervon sollen
allerdings nicht die automatisches Seitenumbrüche beeinflusst werden, bzw. die Seitenbreite verändert werden.

Habe schon einige Codes aus dem Forum probiert, bin allerdings nie wirklich zum Ergebnis gekommen.
Ich hoffe es findet sich jemand, der mir sagen kann wie das zu machen ist.

VG

Murat

  

Betrifft: AW: Bedingter Seitenumbruch per VBA von: Daniel
Geschrieben am: 15.01.2010 19:35:18

HI

mal zur klarstellung:
1. wenn du manuelle Seitenumbrüche einfügst, dann verschiebst du natürlich alle nachfolgenden automatischen, weil die automatischen sich immer auf den vorherigen Seitenumbruch beziehen.
2. manuelle Seitenumbrüche funktionieren nur, wenn du in der Seitenansicht eine feste Zoomstufe eingestellt hast und nicht die Option "x-Seiten breit" aktiviert hast.

Gruß, Daniel


  

Betrifft: AW: Bedingter Seitenumbruch per VBA von: Murat
Geschrieben am: 16.01.2010 14:24:57

Hallo Daniel,

danke schon mal für Dein Interesse.

zu 1 ) Das sich die automatischen Seitenumbrüche verschieben ist Klar und auch so gewünscht.
zu 2 ) Das ist machbar

ud nu?


  

Betrifft: AW: Hier ein Makro von: Daniel
Geschrieben am: 17.01.2010 13:11:52

Hi
probiers mal damit:

Sub SeitenUmbruch()
Dim Zelle As Range
ActiveSheet.ResetAllPageBreaks
With ActiveSheet.UsedRange
    With .Columns(.Columns.Count).Offset(8, 1).Resize(.Rows.Count - 8, 1)
        .FormulaR1C1 = "=if(RC6=R[-1]C6,"""",1)"
        If WorksheetFunction.Sum(.Cells) > 0 Then
            For Each Zelle In .SpecialCells(xlCellTypeFormulas, 1)
                ActiveSheet.HPageBreaks.Add before:=Zelle
            Next
        End If
        .EntireColumn.Delete
    End With
End With
End Sub
Gruß, Daniel


  

Betrifft: AW: Hier ein Makro von: Murat
Geschrieben am: 17.01.2010 13:39:25

Hallo Daniel,

habe das mal als Modul eingepflegt und probiert, konnte nur feststellen das die Seitenumbrüche zurückgesetzt sind, sonst passiert nichts.

Habe mir dann noch mal die Spalten A bis F rauskopiert in ein neues Arbeitsblatt und erneut versucht, hier hats sehr schön funktioniert.

Jetzt bleiben dennoch die ???


  

Betrifft: AW: Da müsstest du mal die Datei von: Daniel
Geschrieben am: 17.01.2010 17:28:07

hochladen, wo es nicht funktioniert.
Das Problem liegt nicht immer am Code, sondern manchmal auch an der Datei.
Universell funktionierenden Code gibt es nicht, man muss sich immer nach den Vorgaben der Datei richten.
Leider kenne ich deine Datei nicht und kann daher auch nicht sagen, warum es nicht geht.

Gruß, Daniel


Beiträge aus den Excel-Beispielen zum Thema "Bedingter Seitenumbruch per VBA"