Macro cambio color celdas al clikarlas

Mi pregunta es cómo hacer una macro que modifique el color de una celda de rojo a verde y viceversa, según qué color tenga la celda previamente y que se modifique cada vez que la clikes.
Es decir, si la clicas y estaba verde que se ponga roja y al revés, si estaba roja que se ponga verde al clikarla.
Respuesta

Recién leo esta pregunta si bien que de seguro ya la tienes pero este es el código y lo debes poner en un modulo dentro de una hoja. Seleccionar objeto worksheet y en propiedad selectionchange

Y copia este método

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = 2 Then
ActiveCell.Interior.ColorIndex = 1
ElseIf ActiveCell.Interior.ColorIndex = 1 Then
ActiveCell.Interior.ColorIndex = 2
End If

End Sub

1 respuesta más de otro experto

Respuesta
2
Es algo que parece sencillo de conseguir pero no lo es tanto, debido a que (hasta donde yo sé) no hay ningún evento que se produzca al hacer click en una celda, salvo que este click implique un cambio de selección, en cuyo caso se puede usar el evento Worksheet_SelectionChange. Curiosamente sí existen eventos para doble click y click con el botón derecho, pero no para un click normal...
Si no necesitas seleccionar nunca esa celda, podrías usar el siguiente código, el cual hace el cambio de color de A1 y desplaza la selección una celda a la derecha para que si se vuelve a seleccionar A1 se produzca un nuevo cambio de selección y se vuelva a lanzar el evento:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address(0, 0) <> "A1" Then Exit Sub 'Cambiar A1 por la celda que sea
    With Target.Interior
        If .ColorIndex = 3 Then .ColorIndex = 4 Else .ColorIndex = 3
    End With
    Application.EnableEvents = False
    Target.Offset(, 1).Activate
    Application.EnableEvents = True
End Sub
El código iría en el módulo de la hoja (click derecho sobre su etiqueta -> Ver código). El problema es que el cambio de color se producirá también si se selecciona la celda usando las teclas del cursor. Pero de momento no se me ocurre nada mejor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas