.24.05.17
Buenas, Tango
Podría resolverse simplemente con formato condicional
Pero como pediste una macro, te paso esta rutina de VBA basada en el evento Cambio para que haga lo que indicás estrictamente.
Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y en el panel de la izquierda busca la hoja donde quieres que esto ocurra. Da doble click sobre ella. (otra forma de llegar a este punto es hacer click derecho sobre la solapa de esta hoja y elegir la opción "Ver Código).
Allí pegá el siguiente procedimiento de VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
'---- Variables modificables ----
'=== TANGO, modificá estos datos de acuerdo a tu proyecto:
Crit1 = Array("a1", "b1", "c1", "c2", "c3", "c4", "c5") ' primeras dos direcciones son las de referencia. El resto son las que se pintan
Col1 = 33 'azul claro. 5 para azul oscuro
Crit2 = Array("a2", "b2", "c6", "c7", "c8") ' primeras dos direcciones son las de referencia. El resto son las que se pintan
Col2 = 3 'rojo
'---- fin Variables
'
' VBA coding by FeJoAl
'
'---- inicio de rutina:
'
Select Case LCase(Target.Address(False, False))
Case LCase(Crit1(0)), LCase(Crit1(1))
For Lacelda = 2 To UBound(Crit1)
Range(Crit1(Lacelda)).Interior.ColorIndex = -4142
Next
If Range(Crit1(0)).Value = 0 And Range(Crit1(1)) = 5 Then
For Lacelda = 2 To UBound(Crit1)
Range(Crit1(Lacelda)).Interior.ColorIndex = Col1
Next
End If
Case LCase(Crit2(0)), LCase(Crit2(1))
For Lacelda = 2 To UBound(Crit2)
Range(Crit2(Lacelda)).Interior.ColorIndex = -4142
Next
If Range(Crit2(0)).Value = 5 And Range(Crit2(1)) = 8 Then
For Lacelda = 2 To UBound(Crit2)
Range(Crit2(Lacelda)).Interior.ColorIndex = Col2
Next
End If
End Select
Como verás, al principio del código están los dos criterios que mencionaste en dos matrices que guardan tanto las celdas de referencia como las celdas a pintar.
Cuando haya cambios en esas cuatro celdas, se pintarán las otras que mencionaste.
Comentame si mi solución resuelve lo que buscás -y, en tal caso, agradeceré que califiques mi contribución- o escribime de nuevo aquí, si necesitás más apoyo con esto.
Un saludo
Fernando
.
(Buenos Aires, Argentina)
.