Formato condicional más de 3 condiciones en Excel 2003

En esta ocasión comparto una macro que permitirá a las versiones de Excel 2003 y anteriores, utilizar más de 3 opciones de formato condicional. Esto se hace mediante el constructor Select Case con el evento Change de la hoja activa.

Código:

'---------------------------------------------------------------------------------------
' Procedure : Worksheet_Change
' Date      : 24/04/2011
' Purpose   : Formato condicional con más de 3 condiciones en Excel 2003 (-)
'---------------------------------------------------------------------------------------
'
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo fin
    If Application.Intersect(Target, [A3:I21]) Is Nothing Then Exit Sub
    With ThisWorkbook.ActiveSheet
        Select Case Target
        Case .Range("K3").Value
            Target.Interior.ColorIndex = .Range("K3").Interior.ColorIndex
        Case .Range("K4").Value
            Target.Interior.ColorIndex = .Range("K4").Interior.ColorIndex
        Case .Range("K5").Value
            Target.Interior.ColorIndex = .Range("K5").Interior.ColorIndex
        Case .Range("K6").Value
            Target.Interior.ColorIndex = .Range("K6").Interior.ColorIndex
        Case .Range("K7").Value
            Target.Interior.ColorIndex = .Range("K7").Interior.ColorIndex
        Case .Range("K8").Value
            Target.Interior.ColorIndex = .Range("K8").Interior.ColorIndex
        Case .Range("K9").Value
            Target.Interior.ColorIndex = .Range("K9").Interior.ColorIndex
        Case .Range("K10").Value
            Target.Interior.ColorIndex = .Range("K10").Interior.ColorIndex
        Case .Range("K11").Value
            Target.Interior.ColorIndex = .Range("K11").Interior.ColorIndex
        Case .Range("K12").Value
            Target.Interior.ColorIndex = .Range("K12").Interior.ColorIndex
        Case Else
            Target.Interior.ColorIndex = xlColorIndexNone
        End Select
    End With
    Exit Sub
fin:
    MsgBox "Intentaste borrar más de una celda a la vez. Debes de borrar celda por celda", vbCritical, "Error de borrado"
End Sub

:: Descarga el ejemplo

You may also like...