Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Seitenumbruch per VBA einfügen
#1
Hallo liebe Gemeinschaft,

ich habe eine ziemlich lange Liste, bei der über ein Makro manuelle Seitenumbrüche eingefügt werden sollen.
Der Umbruch soll immer dann erfolgen, wenn in Spalte "B" z.B. "WAHR" steht.

Ich habe im Netz bereits folgendes Makro gefunden, das aber nicht immer funktioniert.

Sub Seitenumbruch_einfuegen()
Dim lngRow As Long

For lngRow = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
If Cells(lngRow, 2) = "WAHR" Then _
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(lngRow + 1, 1)
Next
End Sub

Kann mir bitte jemand weiterhelfen und mir Tipps geben, wie ich das Problem lösen kann?

Vielen Dank schon mal im Voraus

Gruß

Thomas
Top
#2
Hallo,

If Cells(lngRow, 2) = "WAHR"  Or Cells(lngRow, 2) = True Then
[-] Folgende(r) 2 Nutzer sagen Danke an Flotter Feger für diesen Beitrag:
  • Frogger1986, TomKra
Top
#3
Was Funktioniert denn an dem Makro nicht, oder nur manchmal??

Nachtrag:
@Flotter Feger das hätte ich jetzt auch getippt...
[-] Folgende(r) 1 Nutzer sagt Danke an Frogger1986 für diesen Beitrag:
  • TomKra
Top
#4
Vielen Dank schon mal für die schnellen Reaktionen.

Ich habe das Makro in zwei verschiedenen Dateien getestet.

In der einen scheint es jetzt problemlos zu funktionieren.

In der anderen verhält es sich merkwürdig.
Wenn in einer Zelle in Spalten B "WAHR" steht, macht es gar nichts. Wenn in allen Zellen der kleinen Test-Tabelle "WAHR" steht, wird in allen Zeilen ein Seitenumbruch eingefügt.

Wenn ich dann wieder nach und nach die "WAHR" raus lösche, macht es ab einer nicht nachvollziehbaren Anzahl an "WAHR" gar keine Umbrüche mehr. Zwischendurch setze ich die Seitenumbrüche immer wieder zum Testen zurück.

Leider kann ich dabei keine Systematik erkennen.
Top
#5
Hallöchen,

die Zeilenumbrüche werden übrigens in Abhängigkeit der letzten Eintragung in Spalte D gesetzt - ist da was im Argen?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • TomKra
Top
#6
(17.11.2018, 19:11)schauan schrieb: Hallöchen,

die Zeilenumbrüche werden übrigens in Abhängigkeit der letzten Eintragung in Spalte D gesetzt - ist da was im Argen?

Hallo schauan,

Vielen Dank für deinen Hinweis.

Was bedeutet dein Aussage genau?
Heißt dass, ich muss jedes mal noch einen neuen Eintrag in Spalte D machen, um das Makro ausführen zu können?
Top
#7
Hallöchen,

in Deiner Schleife steht

… ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row


Die 4 steht für Spalte D. Wenn Du die Wahrheitswerte in Spalte B hast, würde ich eventuell eine 2 nehmen. Wenn nämlich z.B. Deine Spalte D leer ist, passiert nix.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • TomKra
Top
#8
Hallo schauan,

Dein Tipp war super. Nachdem ich die 4 auf 2 geändert habe, hat alles wie gewünscht funktioniert.

Wenn man noch keine Ahnung von VBA hat und plötzlich für eine Prüfung mit großen Excel Tabellen arbeiten muss, ist es klasse, dass es so Leute wie Dich gibt.

Wie kann ich denn Module, die ich nicht mehr benötige wieder löschen?

Vielen Dank für die Hilfe

Gruß Thomas
Top
#9
Hallo,

ich habe noch ein Makro (siehe unten) um Zeilen auszublenden.
Das funktioniert soweit auch ganz gut.
Kann man das noch etwas optimieren damit es etwas schneller geht?
Die Anzahl der Zeilen habe ich bereits auf den kleinsten Wert (2180) eingestellt.

Aber vielleicht dauert es auch einfach seine Zeit, bis so viele Zeilen überprüft und ausgeblendet sind.

Was ist denn der Unterschied zwischen einem Sub und einem Public Sub?

Gruß
Thomas

Public Sub Zeilen_ausblenden()
Application.ScreenUpdating = False
For i = 1 To 2180
If Cells(i, 1).Value = "0" Then
    Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
Range("A1").Select
End Sub
Top
#10
Hallo Thomas,

Zitat:Wie kann ich denn Module, die ich nicht mehr benötige wieder löschen?

geht mit dem Kontextmenü / rechte Maustaste - "Entfernen von … " Da kommt dann noch eine Meldung, ob Du das Modul noch sichern willst, die kannst Du wegdrücken oder tust es eben sichern Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • TomKra
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste