Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Automatischer Seitenumbruch

Betrifft: Automatischer Seitenumbruch von: Florian
Geschrieben am: 08.07.2008 16:10:26

Hallo!

Ich habe mal wieder ein kleines Problem! Ich würde mir gerne mal ein Makro in Excel anlegen, das automatisch Seitenumbrüche einfügt.

Ich möchte das Markro in in der Excel-Hauptmappe aufnehmen, weil es allgemein verwendbar sein soll.

Ich habe immer wieder Tabellen, die z. B. folgenden Aufbau (nach Sortierung) haben: Siehe Beispiel unter https://www.herber.de/bbs/user/53659.xls

Ich möchte erreichen, dass per Makro nach jedem Wechsel "der Kategorie" ein Seitenumbruch eingefügt wird.

Damit es auch in anderen Tabellen funktioniert, soll Excel in der Spalte (ab der ausgewählten Zelle), in der der Curser steht, die Spalte zuerst
- sortierten,
- alle alten Seitenumbrüche löschen und dann
- nach jedem Wechsel des Zellinhalts (im Vergleich zur Zelle darüber)

ein automatischer Seitenumbruch eingefügt werden.

Wenn die Tabelle zu Ende ist, soll das Marko beendet sein.

Vor dem Start des Makros wäre es sehr hilfreich, wenn vielleicht noch die Frage erscheint, ob die richtige Zelle ausgewählt wurde.

Das wäre eine sehr hilfreiche Funktion, die bestimmt öffters zum Einsatz käme!

Vielen Dank für Eure Hilfe und Bemühungen.

mfg
Florian

  

Betrifft: AW: Automatischer Seitenumbruch von: Tino
Geschrieben am: 08.07.2008 17:07:59

Hallo,
habe mal etwas zusammengebastelt, getestet unter Office2007

Sub SeitenUmbruch()
Dim Bereich As Range
Dim AbZelle As Range
On Error Resume Next
Set AbZelle = Application.InputBox _
("Bitte erste Zelle wählen", "Erste Zelle?", Range("C5").Address, , , , , 8)
On Error GoTo 0

    If AbZelle Is Nothing Then
      Exit Sub
     ElseIf AbZelle.Row = 1 Then
      Exit Sub
    End If
Application.ScreenUpdating = False
 ActiveSheet.ResetAllPageBreaks
    For Each Bereich In Range(AbZelle, Cells(Rows.Count, AbZelle.Column).End(xlUp))
     If Bereich.Value <> Bereich.Offset(-1, 0).Value Then
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Bereich
     End If
    Next Bereich
Application.ScreenUpdating = True
End Sub



Gruß Tino

www.VBA-Excel.de




  

Betrifft: AW: Automatischer Seitenumbruch von: Florian
Geschrieben am: 09.07.2008 10:40:31

Danke Timo!

Funktioniert einwandfrei!

Ich habe nur noch eine kleine Bitte:
Wenn ich aus versehen keine Tabelle auswähle, dann Tritt ein Fehler auf!
Kann man diesen noch abschalten!

Sonst ist dieser Code echt perfekt!
Danke nochmal!

mfg
Florian


  

Betrifft: AW: Automatischer Seitenumbruch von: Tino
Geschrieben am: 09.07.2008 16:48:51

Hallo Florian,
welchen Fehler meinst Du, wo ist bei Dir der Fehler?
Habe dies jetzt nochmal getestet, wenn ich keine Zelle auswähle und auf „OK“ drücke wird Standartmäßig die Zelle C5 als Startpunkt gewählt.
Drücke ich auf „Abbrechen“, wird der Fehler durch „On Error Resume Next“ abgefangen
und in der Code- Zeile „If AbZelle Is Nothing Then“ wird dies nochmal überprüft.



Gruß Tino

www.VBA-Excel.de




  

Betrifft: AW: Automatischer Seitenumbruch von: Florian
Geschrieben am: 10.07.2008 07:55:11

Hallo Timo!

Bei mir tritt der Fehler auf, wenn ich das Makro ausführe und es keine Tabelle in diesem Arbeitsblatt gibt.

Der Fehler tritt in folgender Code-Zeile auf:

If Bereich.Value <> Bereich.Offset(-1, 0).Value Then


Ist aber nicht so schlimm, wenn sicher der Fehler nicht beheben lässt. Der Benutzer dieses Makros muss halt bloß ein bisschen besser aufpassen.

Schönen Tag noch!
Florian


  

Betrifft: AW: Automatischer Seitenumbruch von: Tino
Geschrieben am: 10.07.2008 16:01:31

Hallo,
teste mal diese Version.

https://www.herber.de/bbs/user/53726.xls

Gruß Tino

www.VBA-Excel.de




  

Betrifft: AW: Automatischer Seitenumbruch von: Florian
Geschrieben am: 11.07.2008 09:23:08

Danke! Jetzt ist es perfekt!

Gruss
Florian


 

Beiträge aus den Excel-Beispielen zum Thema "Automatischer Seitenumbruch"