'
' Cambia il colore di sfondo quando una delle colonne di rottura cambia rispetto alla riga precedente
' Change the background color when one of the columnbreak is different from the previous line
'
Sub EnhanceRowBreaks(rng As Range, _
Optional BreakColumn As Integer = 1, _
Optional ColorIndex1 As Long = -4142, _
Optional ColorIndex2 As Long = 15, _
Optional ColorRGB2)
Dim c1 As Integer
Dim c2 As Integer
Dim cBreak As Integer
Dim c As Integer
Dim r As Long
Dim bColor As Boolean ' Boolean Switch for enhaced color
Dim bUseColor As Boolean ' True if use ColorRBG2 instead of ColorIndex2
Dim bkgColor(-1 To 0)
c1 = rng.Column
c2 = rng.Columns(rng.Columns.Count).Column
cBreak = c1 + BreakColumn - 1
bkgColor(0) = ColorIndex1
bkgColor(-1) = ColorIndex2
bUseColor = Not IsMissing(ColorRGB2)
r = rng.Row
Range(Cells(r, c1), Cells(r, c2)).Interior.ColorIndex = bkgColor(0)
r = r + 1
Do Until Cells(r, c1) = Empty
' Test if one of BreakColumns are changed
For c = c1 To cBreak
If (Cells(r, c) <> Cells(r - 1, c)) Then
' One of the test columns are not equal
bColor = Not bColor
Exit For
End If
Next
' Set background
If bColor And bUseColor Then
' Use RGB color
Range(Cells(r, c1), Cells(r, c2)).Interior.Color = ColorRGB2
Else
' Use ColorIndex
Range(Cells(r, c1), Cells(r, c2)).Interior.ColorIndex = bkgColor(bColor)
End If
r = r + 1
Loop
End Sub
venerdì 25 marzo 2016
VBA EXCEL - Evidenzare Righe al variare del contenuto di una o + colonne
ITA: Evidenzia le righe di un range alternando due colori quando almeno uno dei valori delle colonne di rottura cambia ripetto alla riga precedente.
ENG: Highlights the rows of a range by alternating two colors when at least one of the breakcolumn values is different than the previous line.
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento