Discussion:
Pivot Datenbereich formatieren?
(zu alt für eine Antwort)
Peter Schuerer
2013-03-04 19:20:35 UTC
Permalink
Hallo Zusammen,

XL2002.

Ich möchte, mit VBA, den Datenbereich einer Pivot mit senkrechten Rahmen
(als Spaltentrenner) formatieren.

Mein Problem:
Über einen Button wird das Element "Datum" als erste Spalte ein- oder
ausgeblendet.
Somit verschiebt sich der Datenbereich jeweils um eine Spalte nach vorn
oder hinten.
Somit kann ich den Datenbereich nicht mit "E6:I17" ansprechen.

Sub Makro3()
'
' Makro aufgezeichnet

Range("E6:I13").Select 'Hier soll der Datenbereich der Pivot
angesprochen werden
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range("A5").Select
End Sub

Wie kann ich den "Datenbereich" inklusive Überschriften ansprechen?
Hoffe auf Eure Hilfe.

Danke und Gruß
Peter
Claus Busch
2013-03-04 19:49:17 UTC
Permalink
Hallo Peter,
Post by Peter Schuerer
Über einen Button wird das Element "Datum" als erste Spalte ein- oder
ausgeblendet.
Somit verschiebt sich der Datenbereich jeweils um eine Spalte nach vorn
oder hinten.
Somit kann ich den Datenbereich nicht mit "E6:I17" ansprechen.
probiers mal so:

Sub Test()
Dim LRow As Long
Dim LCol As Long
Dim Start As Long

Start = WorksheetFunction.CountBlank(Range("A6:H6"))
LRow = Cells(Rows.Count, Start + 1).End(xlUp).Row
LCol = Cells(6, Columns.Count).End(xlToLeft).Column

Range(Cells(6, Start + 1), Cells(17, "I")) _
.Borders(xlInsideVertical).LineStyle = xlNone
With Range(Cells(6, Start + 1), Cells(LRow, LCol))
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With

End Sub


Mit freundlichen Grüßen
Claus Busch
--
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3
Peter Schuerer
2013-03-04 20:53:39 UTC
Permalink
Post by Claus Busch
Sub Test()
Dim LRow As Long
Dim LCol As Long
Dim Start As Long
Start = WorksheetFunction.CountBlank(Range("A6:H6"))
LRow = Cells(Rows.Count, Start + 1).End(xlUp).Row
LCol = Cells(6, Columns.Count).End(xlToLeft).Column
Hallo Claus,

wie immer, einfach Super Lösung und sehr schnelle Hilfe.
Es funktioniert wunderbar.

Vielen Dank und herzlichen Gruß
Peter

Loading...