02.02.2023, 11:30
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