Microsoft Excel

Herbers Excel/VBA-Archiv

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

Seitenumbruch und Inhaltsverzeichniss | Herbers Excel-Forum


Betrifft: Seitenumbruch und Inhaltsverzeichniss von: Ernst
Geschrieben am: 27.10.2008 17:37:31

Hallo liebe Excel Freunde!

Gleich zwei Aufgaben auf einmal, die für mich leider unlösbar sind. Es geht um eine automatische Seiteneinteilung (Seitenumbruch) und daraus ein Inhaltsverzeichniss zu machen. Genauere Anweisungen siehe xls Datei.
Bitte kann sich das mal einer ansehen.

Danke L.G Ernst

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

  

Betrifft: AW: Seitenumbruch und Inhaltsverzeichniss von: fcs
Geschrieben am: 28.10.2008 16:42:49

Hallo Ernst,

ich hab mir dein Problem mal angesehen. Nach einiger Bastelarbeit funktioniert es jetzt einigermassen rund.
https://www.herber.de/bbs/user/56345.xls

Die Einträge, die mehr Zeilen benötigen, als auf eine Seite passen, werden so eingebaut, dass sie immer oben auf einer Seite beginnen. Den Seitenwechsel hier anders zu setzen, wird relativ kompliziert. Man müsste dann erst die Zeilenzahl des Eintrags ermitteln und dann abhängig von Bedingungen den Seitenwechsel vor der 1. Zeile setzen oder auch nicht.

Die Überschriften werden automatisch ermittelt aus der Schriftformatierung (Fett + unterstrichen=Überschrift) in der Spalte mit den Bezeichnungen.

Gruß
Franz


  

Betrifft: AW: Seitenumbruch und Inhaltsverzeichniss von: Ernst
Geschrieben am: 28.10.2008 20:13:32

Hallo Franz!
Danke erstmal für die mühe sieht ja sehr gut aus. Werde es morgen in der Arbeit mal ordentlich testen.
Kann man auch noch eingeben das bei jeder Überschrifft eine neue Seite beginnt?
Und kann ich das Inhaltsverzeichniss auch extra ausgeben lassen ohne automatischer Seiteneinteilung, denn ich denke ich werde ohne manueler überarbeitung der Seiteneinteilung nicht auskommen können.
Danke!

Gruß Ernst


  

Betrifft: AW: Seitenumbruch und Inhaltsverzeichniss von: fcs
Geschrieben am: 29.10.2008 09:08:07

Hallo Ernst,

ich hab die Prozeduren jetzt so umgestellt, dass du das Erstellen des Inhaltsverzeichnisses auch separat starten kannst, nachdem du Seitenwechsel manuell angepasst hast.

Das Inhaltsverzeichnis wird jetzt auf einem separaten Blatt ausgegeben.
https://www.herber.de/bbs/user/56363.xls

Gruß
Franz


  

Betrifft: AW: Seitenumbruch und Inhaltsverzeichniss von: Ernst
Geschrieben am: 30.10.2008 18:55:38

Danke noch mal funktioniert super!
Nur die durchlaufzeit ist sehr lange dauert bei mir so ca 15 min. bei 200 Seiten
Kann man da noch was machen?
Wenn nicht auch egal mach ich halt ne Kaffeepause :-)
Gruß Ernst


  

Betrifft: AW: Seitenumbruch und Inhaltsverzeichniss von: fcs
Geschrieben am: 31.10.2008 13:37:16

Hallo Ernst,

die Verwaltung, das Setzen und die Prüfung von Seitenwechseln dauert in Excel unter VBA relativ lange.

Ich hab noch ein wenig rumprobiert, aber bei ca. 155 Seiten, 3500 Zeilen in der Tabelle hat die Ausführung bei mir ca. 7 bis 8 Minuten gedauert.

Falls in deinen Tabellen noch irgendwelche Berechnungen oder Ereignismakros laufen, dann sollten diese während der Makro-Ausführung deaktiviert werden.

Dazu muss du die Hauptprozedur wie folgt anpassen.

Sub Seitenwechsel()
  Dim wks As Worksheet
  Dim lngZeilenUe As Long
  
  Set wks = Worksheets("KBL")
  Application.EnableEvents = False
  Application.Calculation = xlCalculationManual
  With wks
    'Druckbereich setzen (Spalten A bis I, Zeile 1 bis letzte Zeile in Überschriften-Spalte _
      + 2 Leerzeilen)
    Call Druckbereich(wks:=wks, spalte1:=1, spalteL:=9, zeile1:=1, _
            zeileL:=.Cells(.Rows.Count, SpalteTitel).End(xlUp).Row + 2)
    'Überschriften markieren
    Call MarkierenUeberschriften(wks)
    'Anzahl Überschriften
    lngZeilenUe = Application.WorksheetFunction.CountIf(.Columns(SpalteUe), "ü")
    If lngZeilenUe = 0 Then
      MsgBox "keine Zeile mit ""ü"" für Überschriften gefunden!"
      GoTo Beenden
    End If
    Application.ScreenUpdating = False
    Call Seitenwechsel_setzen(wks, lngZeilenUe)
  End With
  Application.ScreenUpdating = True
  If MsgBox("Seitenwechsel Fertig" & vbLf & vbLf & "Inhaltsverzeichnis jetzt erstellen?", _
    vbYesNo + vbQuestion, "Inhaltsverzeichnis erstellen") = vbYes Then
    Call Inhalt
  End If
Beenden:
  Application.EnableEvents = True
  Application.Calculation = xlCalculationAutomatic
End Sub


Gruß
Franz


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