Con este video tutorial se da respuesta a un
usuario que pregunta cómo cambiar el color de una autoforma prediseñada al
cambiar el color de relleno de una celda; todo mediante código VBA.
Para comenzar, es necesario aclarar que toda autoforma
es leída o interpretada por el código VBA como un objeto de tipo Shape. Es
decir, podemos iterar por toda la colección Shapes que contiene cada uno de
estos objetos y cambiar sus diferentes propiedades, permitiendo así asignarle
el color que pueda contener una celda en la hoja de cálculo en un momento
determinado.
Procedimiento Sub que cambia el color de una
autoforma según el color de una celda
Sub AjustarColor()
With ActiveSheet.Range("E5").Interior
If .ColorIndex <> xlColorIndexNone Then
ActiveSheet.Shapes("Triangulo").Fill.ForeColor.RGB
= .Color
End If
End With
With ActiveSheet.Range("E10").Interior
If .ColorIndex <> -4142 Then
ActiveSheet.Shapes("Rectangulo").Fill.ForeColor.RGB
= .Color
End If
End With
With ActiveSheet.Range("E15").Interior
If .ColorIndex <> -4142 Then
ActiveSheet.Shapes("Circulo").Fill.ForeColor.RGB
= .Color
End If
End With
End Sub
Esto se hace automáticamente asignando el
procedimiento escrito a un evento del objeto Worksheet que se ejecuta cuando el
usuario cambia la selección de una celda en la hoja; para ello, utilizamos el
evento SelectionChange de una hoja de cálculo mediante el editor de VBA al cual
le asignamos el Procedimiento Sub que hace todo este trabajo.
Configuración del evento SelectionChange de la hoja
que contiene las autoformas
Private Sub Worksheet_SelectionChange(ByVal Target
As Range)
Color.AjustarColor
End Sub
hoola! pero no funciona con formato cxondicional. seria de mucha ayuda si pudieras hacer uno asi
ResponderBorrarExcelente Explicación.
ResponderBorrar