Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antwortento top
#2
Hallo,

If Cells(lngRow, 2) = "WAHR"  Or Cells(lngRow, 2) = True Then
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
[-] Folgende(r) 2 Benutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • Frogger1986, TomKra
Antwortento top
#3
Was Funktioniert denn an dem Makro nicht, oder nur manchmal??

Nachtrag:
@Flotter Feger das hätte ich jetzt auch getippt...
Eine Menge reden, aber nichts sagen können viele...
[-] Folgende(r) 1 Benutzer sagt Danke an Frogger1986 für diesen Beitrag:
  • TomKra
Antwortento 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.
Antwortento 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-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • TomKra
Antwortento top
#6
(17.11.2018, 18: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?
Antwortento 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-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • TomKra
Antwortento 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
Antwortento 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
Antwortento 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-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • TomKra
Antwortento top


Gehe zu:


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