Excel 2010 Makro für Rahmenline bei Seitenumbrüche

16/08/2016 - 12:19 von bingema01 | Report spam
Hallo,

ich suche eine Lösung für mein Makro.
Ich habe eine große Tabelle für Kalkulationen, die am Ende durch Filter von 20 Seiten auf 4 oder 5 gekürt wird.
Wenn alles fertig ist, möchte ich am Ende an jeden Seitenumbruch eine Rahmenlinie (unten und oben von der Seite) einfügen mit diesem Makro einfügen:

Dim hpb As HPageBreak
Dim i1 As Integer, i2 As Integer

With Sheets("V16-Kostenerfassung")
loletzte = .Range("C" & .Rows.Count).End(xlUp).Row
.PageSetup.PrintArea = "$C$2:$X$" & loletzte
.Range("C" & 650).Select
For Each hpb In .HPageBreaks
With hpb.Location.Offset(-1, 0).Resize(3, 24)
.Borders(xlEdgeBottom).Weight = xlThick
End With
Next
.PageSetup.PrintArea = "C$2:$X$" & loletzte
.Range("C" & 605).SpecialSells .Select
For Each hpb In .HPageBreaks
With hpb.Location.Offset(0, 0).Resize(3, 24)
.Borders(xlEdgeTop).Weight = xlThick
End With
Next
End With
Set hbp = Nothing

Nun zu meinem Problem:
oben (Borders(xlEdgeTop))werden die Rahmenlinien gut gesetzt, da ich durch Offset(0, 0) direkt bei der Zeile vom Seitenumbruch bin. Durch Offset(-1, 0) soll auf die alte Seite gesprungen werden um dort unten (.Borders(xlEdgeBottom)) die Rahmenlinie zu ziehen. Da aber ein Filter aktiv ist, wird die Rahmenlinie nicht bei der oberen sichtbaren Zeile gemacht sondern einfach bei der nàchsten (durch den Filter ausgeblendeten Zeile).
Was muss ich machen, dass mit meinem Makro nur die gefilterten (eingeblendeten Zeilen) gezàhlt werden und nicht die aussortieren?

Mit freundlichen Grüßen
 

Lesen sie die antworten

#1 Claus Busch
16/08/2016 - 21:02 | Warnen spam
Hallo,

Am Tue, 16 Aug 2016 03:19:57 -0700 (PDT) schrieb :

Nun zu meinem Problem:
oben (Borders(xlEdgeTop))werden die Rahmenlinien gut gesetzt, da ich durch Offset(0, 0) direkt bei der Zeile vom Seitenumbruch bin. Durch Offset(-1, 0) soll auf die alte Seite gesprungen werden um dort unten (.Borders(xlEdgeBottom)) die Rahmenlinie zu ziehen. Da aber ein Filter aktiv ist, wird die Rahmenlinie nicht bei der oberen sichtbaren Zeile gemacht sondern einfach bei der nàchsten (durch den Filter ausgeblendeten Zeile).
Was muss ich machen, dass mit meinem Makro nur die gefilterten (eingeblendeten Zeilen) gezàhlt werden und nicht die aussortieren?



probiere es mal so:

Sub test()
Dim HPB As HPageBreak
Dim LRow As Long, lgHPB As Long
Dim rngC As Range, myRng As Range
Dim varAdr As Variant

With Sheets("V16-Kostenerfassung")
.ResetAllPageBreaks
LRow = .Cells(.Rows.Count, "C").End(xlUp).Row
.PageSetup.PrintArea = "$C$1:$X$" & LRow
With .Range("C1:X" & LRow)
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
End With
For Each HPB In .HPageBreaks
lgHPB = HPB.Location.Row
With .Cells(lgHPB, 3).Resize(, 24)
.Borders(xlEdgeTop).Weight = xlThick
End With
Set myRng = .Range("C" & lgHPB - 10 & ":C" & lgHPB -
1).SpecialCells(xlCellTypeVisible)
varAdr = Split(myRng.Address, ",")
With .Range(varAdr(UBound(varAdr))).Resize(, 24)
.Borders(xlEdgeBottom).Weight = xlThick
End With
Next
End With
End Sub


Mit freundlichen Grüßen
Claus
Windows10
Office 2016

Ähnliche fragen