Villkorsstyrd formatering i Pivottabeller

 

Pivottabeller är dynamiska varför det kan vara svårt att använda sig av de inbyggda funktionerna i Excel.

I detta tips visas hur vi enkelt kan applicera villkorsstyrd formatering oavsett hur pivottabellen ser ut och  eller om den förändras. Nyckel till det ligger i användandet av egenskapen DataBodyRange, vilken är för många en okänd egenskap.
 

Om ett felmeddelande erhålls vid kopiering till VBA-modul så läs mer här»
 

 

(© 2002 - 2005 All rights Colo - Used by permission)

Sub PivotTables_Conditional_Formatting()

  '© 2005 Alla rättigheter XL-Dennis

  Dim wbBook As Workbook

  Dim wsSheet As Worksheet

  Dim ptTable As PivotTable

  Dim rnPTdata As Range

 

  Set wbBook = ThisWorkbook

  Set wsSheet = wbBook.Sheets(1)

  Set ptTable = wsSheet.PivotTables(1)

  Set rnPTdata = ptTable.DataBodyRange

 

  'Tar bort tidigare formatering.

  With rnPTdata

    .FormatConditions.Delete

  End With

 

  'Uppdaterar cachen.

  ptTable.PivotCache.Refresh

 

  Set rnPTdata = ptTable.DataBodyRange

 

  'Skapar den nya villkorsstyrda formateringen.

  With rnPTdata

 

    .FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _

        Formula1:="30"

    With .FormatConditions(1)

      .Interior.ColorIndex = 19

      .Font.Bold = True

    End With

 

    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _

        Formula1:="0"

    With .FormatConditions(2)

      .Interior.ColorIndex = 3

      With .Font

        .Bold = True

        .ColorIndex = 2

      End With

    End With

 

  End With

 

End Sub