Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

variabler Seitenumbruch mittels VBA

Forumthread: variabler Seitenumbruch mittels VBA

variabler Seitenumbruch mittels VBA
08.05.2015 16:27:27
Rebecca
Hallo liebe Mituser, liebe Excelgemeinde,
ich hätte da ein kleines Problemchen :
Ich habe eine Tabelle, die aus verschiedenen Analysen besteht. Jede Analyse hat eine verschiedene Anzahl an Zeilengröße. Je nachdem welche Analysen ausgewählt werden, ist der Seitenumbruch mitten in einer Analyse. Diese sollte aber zusammenhängend auf der neuen Seite erscheinen.
Wie kann man einen Variablen Seitenumbruch erstellen, wo nach einer Analyse variable der Seitenumbruch nach Zeile 32, 34 oder nach Zelie 35 passiert?
Bsp:
WCX [ ] Proben auf 10 mg/mL in Milli Q verdünnt [ ] durchgeführt
[ ] ausgewertet
WCX besteht aus 2 Zeilen durchgeführt und ausgewertet. mittendrin ist der Zeilenumbruch. auf der ersten Seite steht noch das durchgeführt und auf der Zweiten ausgewertet. wie kann man vriabel erstellen, dass eine Analyse nicht getrennt wird und komplett auf Seite 2 erscheint?
Vielen dank schonmals un ein schönes WE
Eure twobbi

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: variabler Seitenumbruch mittels VBA
11.05.2015 11:37:16
Rebecca
keiner ne idee?

AW: variabler Seitenumbruch mittels VBA
11.05.2015 13:25:59
fcs
Hallo twobbi,
im Prinzip kann man so etwas per VBA steuern.
Voraussetzung ist, dass das Ende und/oder der Anfang der zu einer Anlyse gehörenden Zeilen eindeutig identifiziert werden kann (z.B. bestimmter Zellinhalt in einer Spalte).
Dann kann man falls erforderlich manuelle Seitenwechsel in Zeilen per VBA setzen.
Das Makro läuft dann wie folgt ab:
1. Alle Seitenwechsel löschen
2. Start der 1. Analyse suchen
3 Start der nächsten Analyse suchen bzw. letzte Zeile
3.1 Prüfen, ob ein automatischer Seitenwechsel vorhanden ist - Zeile merken.
3.2 Wenn ja dann vor Startzeile einen manuellen Seitenwechsel setzen
3.3 Neue Startzeile setzen, gemerkte Seitenwechselzeile zurücksetzen
5. Für die weiteren Analysen den Schritte 3 wiederholen
Sieht als Makro dann wie folgt aus, wobei die Prüfungen für den Beginn einer weiteren Analyse individuell anpassen muss.
Gruß
Franz
'Erstellt/getestet unter Excel 2010
Sub Seitenwechsel_setzen()
Call SeitenwechselAnalysen(wks:=ActiveSheet)
End Sub
Sub SeitenwechselAnalysen(wks As Worksheet)
Dim Zeile As Long
Dim Zeile_1 As Long, Zeile_2 As Long, Zeile_L As Long, Zeile_PB As Long
Dim strTest As String
strTest = "Analyse" 'eindeutiger Textanfang in Zelle in Spalte A bei jeder neuen _
Analyse, oberhalb der Zelle ist immer eine leere Zelle
With wks
.ResetAllPageBreaks
'letzte benutzte Zeile im Blatt
Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
For Zeile = 1 To Zeile_L
'1. Analyse finden-Zelle in Zeile ist leer, darunter ist der Test-Text enthalten
If .Cells(Zeile, 1).Text = "" _
And Left(.Cells(Zeile, 1).Text, Len(strTest)) = strTest Then
Zeile_1 = Zeile
End If
Do
Zeile = Zeile + 1
'Zeile eines automatischen Seitenwechsels ggf. merken
If .Cells(Zeile, 1).EntireRow.PageBreak = xlPageBreakAutomatic Then
Zeile_PB = Zeile
End If
'Prüfen, ob weitere Analyse beginnt oder letzte Zeile erreicht ist
If (.Cells(Zeile, 1).Text = "" _
And Left(.Cells(Zeile + 1, 1).Text, Len(strTest)) = strTest) _
Or Zeile = Zeile_L Then
Zeile_2 = Zeile 'Zeile der nächsten Analys merken
If Zeile_PB  0 And Zeile_PB  Zeile_2 Then '--> Seitenwechsel innerhalb Analyse
.Cells(Zeile_1, 1).PageBreak = xlPageBreakManual
End If
Zeile_1 = Zeile_2
Zeile_PB = 0
Zeile_2 = 0
If Zeile >= Zeile_L Then Exit For
End If
Loop
Next
End With
End Sub

Anzeige
AW: variabler Seitenumbruch mittels VBA
11.05.2015 15:11:58
Rebecca
hallo Franz,
sieht soweit schon mal ganz gut aus, denke das könnte passen.
VG
twobbi
;
Anzeige
Anzeige

Infobox / Tutorial

Variabler Seitenumbruch in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um einen variablen Seitenumbruch in Excel mittels VBA einzufügen, kannst du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" und wähle Einfügen > Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    'Erstellt/getestet unter Excel 2010
    Sub Seitenwechsel_setzen()
       Call SeitenwechselAnalysen(wks:=ActiveSheet)
    End Sub
    
    Sub SeitenwechselAnalysen(wks As Worksheet)
       Dim Zeile As Long
       Dim Zeile_1 As Long, Zeile_2 As Long, Zeile_L As Long, Zeile_PB As Long
       Dim strTest As String
       strTest = "Analyse" ' eindeutiger Textanfang in Zelle in Spalte A
       With wks
           .ResetAllPageBreaks
           Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
           For Zeile = 1 To Zeile_L
               If .Cells(Zeile, 1).Text = "" And Left(.Cells(Zeile, 1).Text, Len(strTest)) = strTest Then
                   Zeile_1 = Zeile
               End If
               Do
                   Zeile = Zeile + 1
                   If .Cells(Zeile, 1).EntireRow.PageBreak = xlPageBreakAutomatic Then
                       Zeile_PB = Zeile
                   End If
                   If (.Cells(Zeile, 1).Text = "" And Left(.Cells(Zeile + 1, 1).Text, Len(strTest)) = strTest) Or Zeile = Zeile_L Then
                       Zeile_2 = Zeile
                       If Zeile_PB > 0 And Zeile_PB < Zeile_2 Then
                           .Cells(Zeile_1, 1).PageBreak = xlPageBreakManual
                       End If
                       Zeile_1 = Zeile_2
                       Zeile_PB = 0
                       Zeile_2 = 0
                       If Zeile >= Zeile_L Then Exit For
                   End If
               Loop
           Next
       End With
    End Sub
  4. Führe das Makro aus:

    • Gehe zurück zu Excel und drücke ALT + F8, wähle Seitenwechsel_setzen und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: Der Seitenumbruch wird nicht korrekt gesetzt:

    • Stelle sicher, dass der Text "Analyse" exakt in der ersten Spalte der Zeilen steht, die du analysiert hast.
  • Fehler: Das Makro führt zu einem Laufzeitfehler:

    • Überprüfe, ob die Zeilen, die du analysierst, leer sind. Das Makro erwartet, dass die Struktur deiner Daten konsistent ist.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch manuelle Seitenumbrüche setzen:

  1. Wähle die Zeile aus, nach der du einen Seitenumbruch setzen möchtest.
  2. Gehe zu Seitenlayout > Seitenumbrüche > Seitenumbruch einfügen.

Diese Methode ist jedoch weniger flexibel und nicht dynamisch.


Praktische Beispiele

Ein Beispiel für die Nutzung des VBA-Codes könnte eine Tabelle mit mehreren Analysen sein:

  • Analyse 1 (Zeilen 1-3)
  • Analyse 2 (Zeilen 5-7)

Mit dem oben genannten VBA-Code wird sichergestellt, dass jede Analyse auf einer neuen Seite beginnt, auch wenn sich die Anzahl der Zeilen ändert.


Tipps für Profis

  • Du kannst den VBA-Code anpassen, um verschiedene Bedingungen für die Erkennung deiner Analysen festzulegen.
  • Nutze die Funktion excel zeile bei seitenumbruch wiederholen, um Kopfzeilen bei jedem Seitenumbruch anzuzeigen.

FAQ: Häufige Fragen

1. Wie kann ich den Seitenumbruch entfernen?
Du kannst alle Seitenumbrüche zurücksetzen, indem du im VBA-Code die Zeile .ResetAllPageBreaks verwendest.

2. Funktioniert dieser Code auch in Excel 365?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 365. Stelle sicher, dass deine Arbeitsmappe Makros zulässt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige