VBA: Betinget formatering på alle diagrammer på ActiveSheet
Jeg har en procedure der laver betinget formatering på et markeret søjlediagram.
Jeg ønsker at tilpasse proceduren så den looper igennem alle Charts på ActiveSheet og laver betinget formatering.
Her er min nuværende kode:
Sub BetingetFormateringDiagram()
Dim rPatterns As Range Dim iPattern As Long Dim vPatterns As Variant Dim iPoint As Long Dim vValues As Variant Dim rValue As Range
On Error GoTo ErrHandler
Set rPatterns = ActiveSheet.Range("A1:A4") vPatterns = rPatterns.Value With ActiveChart.SeriesCollection(1) vValues = .Values
For iPoint = 1 To UBound(vValues) For iPattern = 1 To UBound(vPatterns) If vValues(iPoint) <= 0 Then .Points(iPoint).Format.Fill.ForeColor.RGB = RGB(185, 59, 0) .Points(iPoint).Format.Fill.BackColor.RGB = RGB(255, 0, 0) .Points(iPoint).Format.Fill.TwoColorGradient Style:=msoGradientHorizontal, Variant:=2 Else .Points(iPoint).Format.Fill.ForeColor.RGB = RGB(33, 166, 30) .Points(iPoint).Format.Fill.BackColor.RGB = RGB(0, 255, 0) .Points(iPoint).Format.Fill.TwoColorGradient Style:=msoGradientHorizontal, Variant:=1 End If Next Next End With Exit Sub
ErrHandler:
MsgBox ("Du skal markere et diagram først"), vbCritical
Dim rPatterns As Range Dim iPattern As Long Dim vPatterns As Variant Dim iPoint As Long Dim vValues As Variant Dim rValue As Range Dim sht As Worksheet Dim CurrentSheet As Worksheet Dim cht As ChartObject
For Each cht In ActiveSheet.ChartObjects cht.Activate Set rPatterns = ActiveSheet.Range("A1:A4") vPatterns = rPatterns.Value With ActiveChart.SeriesCollection(1) vValues = .Values
For iPoint = 1 To UBound(vValues) For iPattern = 1 To UBound(vPatterns) If vValues(iPoint) <= 0 Then .Points(iPoint).Format.Fill.ForeColor.RGB = RGB(185, 59, 0) .Points(iPoint).Format.Fill.BackColor.RGB = RGB(255, 0, 0) .Points(iPoint).Format.Fill.TwoColorGradient Style:=msoGradientHorizontal, Variant:=2 Else .Points(iPoint).Format.Fill.ForeColor.RGB = RGB(33, 166, 30) .Points(iPoint).Format.Fill.BackColor.RGB = RGB(0, 255, 0) .Points(iPoint).Format.Fill.TwoColorGradient Style:=msoGradientHorizontal, Variant:=1 End If Next Next End With Next cht
Application.EnableEvents = True
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.