Registriert seit: 06.04.2018
	
 Version(en): 16.11.1
	 
 
	
	
		Code: Sub Makro7() Dim lngV As Long   Dim oHP As HPageBreak   Dim rngA As Range, rngB As Range, rngC As Range   Application.ScreenUpdating = False   With Worksheets("Besuch - Visite - Visita")     .Activate     Set rngC = ActiveCell     .Cells(.Rows.Count, 1).Select     'Zeilen ausblenden wenn Zelle leer'     Range("18:19").EntireRow.Hidden = WorksheetFunction.CountA(Range("B19")) = 0     Range("27:28").EntireRow.Hidden = WorksheetFunction.CountA(Range("B28")) = 0     Range("36:37").EntireRow.Hidden = WorksheetFunction.CountA(Range("B37")) = 0     Range("44:45").EntireRow.Hidden = WorksheetFunction.CountA(Range("B45")) = 0     Range("53:54").EntireRow.Hidden = WorksheetFunction.CountA(Range("B54")) = 0     Range("63:64").EntireRow.Hidden = WorksheetFunction.CountA(Range("B64")) = 0     Range("72:73").EntireRow.Hidden = WorksheetFunction.CountA(Range("B73")) = 0     Range("79:80").EntireRow.Hidden = WorksheetFunction.CountA(Range("B80")) = 0     Range("89:90").EntireRow.Hidden = WorksheetFunction.CountA(Range("B90")) = 0     Range("99:100").EntireRow.Hidden = WorksheetFunction.CountA(Range("B100")) = 0     Range("104:120").EntireRow.Hidden = WorksheetFunction.CountA(Range("B107")) = 0     Range("109:112").EntireRow.Hidden = WorksheetFunction.CountA(Range("B109")) = 0     Range("111:112").EntireRow.Hidden = WorksheetFunction.CountA(Range("B111")) = 0     Range("113:120").EntireRow.Hidden = WorksheetFunction.CountA(Range("B115")) = 0     Range("117:120").EntireRow.Hidden = WorksheetFunction.CountA(Range("B117")) = 0     Range("119:120").EntireRow.Hidden = WorksheetFunction.CountA(Range("B119")) = 0     Range("126:127").EntireRow.Hidden = WorksheetFunction.CountA(Range("B127")) = 0     Range("133:134").EntireRow.Hidden = WorksheetFunction.CountA(Range("B134")) = 0     Range("B139").EntireRow.Hidden = WorksheetFunction.CountA(Range("B139")) = 0     Range("141:142").EntireRow.Hidden = WorksheetFunction.CountA(Range("B142")) = 0     Range("147:148").EntireRow.Hidden = WorksheetFunction.CountA(Range("B148")) = 0     Range("160:161").EntireRow.Hidden = WorksheetFunction.CountA(Range("B161")) = 0     lngV = ActiveWindow.View     ActiveWindow.View = xlPageBreakPreview     .ResetAllPageBreaks     'Zeilen, die bei einem allfälligen Seitenumbruch zusammengehalten werden sollen'     Set rngB = Range("A11:A22,A23:A31,A32:A40,A41:A48,A49:A57,A58:A67,A68:A76,A77:A83,A84:A93,A94:A103,A104:A120,A121:A135,A136:A155,A156:A166")     For Each rngA In rngB.Areas       For Each oHP In .HPageBreaks         If Not Intersect(rngA.Offset(1).Resize(rngA.Rows.Count - 1), oHP.Location) Is Nothing Then           .HPageBreaks.Add rngA         End If       Next oHP     Next rngA     ActiveWindow.View = xlNormalView   End With   rngC.Select   Application.ScreenUpdating = True   ActiveWindow.SelectedSheets.PrintPreview End Sub
 Liebe Leute Ich habe obigen Code, welcher soweit auch tiptop funktioniert. Kurz zusammengefasst: - er blendet Zeilen aus, wenn in entsprechenden Zellen nichts steht - funktioniert - er hält Zeilen zusammen, wenn sie aufgrund eines Seitenumbruches auseinandergerissen würden - funktioniert - vor der Druckvorschau blendet er Zeilen aus, die nicht beschrieben sind - funktioniert aaaaber Bei der anschliessenden Druckvorschau werden 9 Seiten angezeigt, obwohl nur auf deren 5 Inhalt vorhanden ist. Habe den Code schon mehrmals durch eine KI checken lassen, kriege allerdings keine gescheite Antwort. Hat jemand von euch eine Idee? Herzlichen Dank und Gruss mauritius5
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
		
		
		02.02.2023, 12:35 
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2023, 12:36 von Rabe.)
		
	 
	
		Hi,
  werden die 9 Seiten nur angezeigt oder werden sie auch ausgedruckt?
  Gruß Ralf
	 
	
	
	
	
 
	  
	Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
	  • mauritius5
 
 
 
	
	
	
		
	Registriert seit: 06.04.2018
	
 Version(en): 16.11.1
	 
 
	
	
		Dies weiss ich nicht, da ich gerade nicht im Geschäft bin und dies checken kann. Jedenfalls wird das Dokument fast nur digital verwendet und wenn ich ein PDF erstelle, sind es auch 9 Seiten.
	 
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 28.08.2022
	
 Version(en): 365
	 
 
	
		
		
		02.02.2023, 15:01 
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2023, 15:10 von HKindler.)
		
	 
	
		Hi, kann ich bei mir nicht nachvollziehen. Wenn in Spalte B gar nichts steht, dann bleiben nach deiner Routine noch Zeilen für zwei Seiten übrig (bei Zeilenhöhe 12,75) und genau so viele zeigt er mir auch in der Druckvorschau an. Wenn das bei dir anders ist, dann solltest du einmal eine Datei hier hoch laden, bei der das Problem auftritt. Aber einige Fragen zu deinem Code solltest du dir selbst mal beantworten: - wieso verwendest du einen With-Block ohne ihn wirklich zu verwenden? Wenn du ihn verwenden würdest, also vor alle Range etc. einen Punkt setzen würdest, könntest du auf .Activate und .Select komplett verzichten.
  - wieso verwendest du Range("18:19").EntireRow.Hidden = WorksheetFunction.CountA(Range("B19")) = 0 statt .Range("18:19").EntireRow.Hidden = .Range("B19") = "" oder noch besser .Rows("18:19").Hidden = .Range("B19") = ""
  - wieso merkst du dir ActiveWindow.View in einer Variablen um diese dann nie zu verwenden aber dafür stur am Ende deiner Routine auf xlNormalView zu setzen?
  - wieso schaltest du den View überhaupt um?
  - wieso verwendest du ActiveWindow.SelectSheets.PrintPreview anstatt einfach .PrintPreview innerhalb des With-Blocks?
  - wieso verwendest du .Select und .Activate?
  - wieso verwendest du .ScreenUpdating?
  - wofür brauchst du rngC?
   
	 
	
	
Gruß, Helmut
  Win10 - Office365 / MacOS - Office365
 
	
	
 
 
	
	
	
		
	Registriert seit: 06.04.2018
	
 Version(en): 16.11.1
	 
 
	
	
		 (02.02.2023, 15:01)HKindler schrieb:  Hi,
  kann ich bei mir nicht nachvollziehen. Wenn in Spalte B gar nichts steht, dann bleiben nach deiner Routine noch Zeilen für zwei Seiten übrig (bei Zeilenhöhe 12,75) und genau so viele zeigt er mir auch in der Druckvorschau an. Wenn das bei dir anders ist, dann solltest du einmal eine Datei hier hoch laden, bei der das Problem auftritt.
  Aber einige Fragen zu deinem Code solltest du dir selbst mal beantworten:- wieso verwendest du einen With-Block ohne ihn wirklich zu verwenden? Wenn du ihn verwenden würdest, also vor alle Range etc. einen Punkt setzen würdest, könntest du auf .Activate und .Select komplett verzichten.
  - wieso verwendest du Range("18:19").EntireRow.Hidden = WorksheetFunction.CountA(Range("B19")) = 0 statt .Range("18:19").EntireRow.Hidden = .Range("B19") = "" oder noch besser .Rows("18:19").Hidden = .Range("B19") = ""
  - wieso merkst du dir ActiveWindow.View in einer Variablen um diese dann nie zu verwenden aber dafür stur am Ende deiner Routine auf xlNormalView zu setzen?
  - wieso schaltest du den View überhaupt um?
  - wieso verwendest du ActiveWindow.SelectSheets.PrintPreview anstatt einfach .PrintPreview innerhalb des With-Blocks?
  - wieso verwendest du .Select und .Activate?
  - wieso verwendest du .ScreenUpdating?
  - wofür brauchst du rngC?
  
  Vielen lieben Dank für deine Antwort. Deine Fragen sind sehr gut und leider kann ich sie dir nicht beantworten. Ich bin kein Crack und habe den Code mit eurer Hilfe und der eines KI-Chats zusammen gekriegt. Wie würdest du den Code den anpassen?
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 97-2019 (32) + 365 (64)
	 
 
	
	
		Hallöchen,
  wenn ungefähr doppelt so viele Zeilen vorgeschaut wird als man erwartet könnte es daran liegen, dass da was zu breit geworden ist... Schaue mal in die Ansicht mit dem Seitenlayout, ob da der zweite Block aktiv ist.
	 
	
	
.      \\\|///      Hoffe, geholfen zu haben.        ( ô ô )      Grüße, André aus G in T     ooO-(_)-Ooo    (Excel 97-2019+365)
 
	
	
 
 
	
	
	
		
	Registriert seit: 06.04.2018
	
 Version(en): 16.11.1
	 
 
	
	
		 (02.02.2023, 16:25)schauan schrieb:  Hallöchen,
  wenn ungefähr doppelt so viele Zeilen vorgeschaut wird als man erwartet könnte es daran liegen, dass da was zu breit geworden ist... Schaue mal in die Ansicht mit dem Seitenlayout, ob da der zweite Block aktiv ist. Nein, alle anderen Seiten sind "grau". Es sind nur die Seiten "aktiviert", die auch Text enthalten. An was könnte es sonst noch liegen?
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 97-2019 (32) + 365 (64)
	 
 
	
	
		Hallöchen,
  also, wenn es im Seitenlayout nur 5 aktive Seiten sind und auf dem Drucker 9, stimmt eventuell was mit dem Treiber nicht? Nur zur Sicherheit die Frage - der Drucker wird Dir, wenn Du auf Drucken gehst, auch gleich als aktiver angezeigt?
	 
	
	
.      \\\|///      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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
	  • mauritius5
 
 
 
	
	
	
		
	Registriert seit: 06.04.2018
	
 Version(en): 16.11.1
	 
 
	
	
		 (02.02.2023, 18:48)schauan schrieb:  Hallöchen,
  also, wenn es im Seitenlayout nur 5 aktive Seiten sind und auf dem Drucker 9, stimmt eventuell was mit dem Treiber nicht? Nur zur Sicherheit die Frage - der Drucker wird Dir, wenn Du auf Drucken gehst, auch gleich als aktiver angezeigt? Keine Ahnung, ob was mit dem Treiber nicht stimmt. Jedenfalls habe ich mit anderen Sheets das Problem nicht. Ja, der Drucker ist aktiv. Aus der Seitenansicht, die sich durch den Code automatisch öffnet, möchte ich allerdings eh nicht drucken sondern jeweils lediglich ein PDF erstellen. Auch wenn ich das PDF erstelle, besteht dieses aus 9 Seiten.
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 17.04.2014
	
 Version(en): MS Office 365(32)
	 
 
	
	
		Hallo Helmut, wieso schaltest du den View überhaupt um? : siehe  hier. Gruß Uwe
	  
	
	
	
	
 
	  
	Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
	  • mauritius5
 
 
 
	 
 |