Completar macro para sombrear celdas según el valor de otras celdas.
Tengo la siguiente macro. Funciona bien, pero necesito que haga mas cosas que no consigo.
Si en el rango ("B19:AR367") se escribe una de estas iniciales: "V", "L", "S", "AP", "FJ", "VP"
Pintará esa celda según los siguientes criterio:
Si en rango (A, misma fila), está "JS", entonces color 37
Si en rango (A, misma fila), está "DP", entonces color 3
Si en rango (A, misma fila), está "AT", entonces color 4
Si en rango (A, misma fila), está "JO", entonces color 6
Si en rango (A, misma fila), está "JJ", entonces color 39
Si en rango (A, misma fila), está "EN", entonces color 7
Si en rango (A, misma fila), está "RE", entonces color 12
Y si no, so se sombrea nada.
También la hoja, la bloqueo con la contraseña "JS". Necesito que se desbloquee para ejecutar la macro y después que la vuelva a bloquear.
Muchas gracias y un saludo.
Private Sub Worksheet_Change(ByVal Target As Range)
'si se seleccionaron varias al mismo tiempo no ejecuta (solo se les quita color)
If Target.Count > 1 Then Target.Interior.ColorIndex = xlNone: Exit Sub
'en cualquiera de las filas, si es vacío se quita color y finaliza
If Target = "" Then
Target.Interior.ColorIndex = xlNone
Exit Sub
End If
'según el texto va el color - ya controlé al inicio que si dejo vacía le quite color
If Target.Value = "JS" Then
Target.Interior.ColorIndex = 37 'azul
ElseIf Target.Value = "DP" Then
Target.Interior.ColorIndex = 3 'Rojo
ElseIf Target.Value = "AT" Then
Target.Interior.ColorIndex = 4 'verde
ElseIf Target.Value = "JO" Then
Target.Interior.ColorIndex = 6 'amarillo
ElseIf Target.Value = "JJ" Then
Target.Interior.ColorIndex = 39 'violeta
ElseIf Target.Value = "EN" Then
Target.Interior.ColorIndex = 7 'rosa
ElseIf Target.Value = "RE" Then
Target.Interior.ColorIndex = 12 'marron
End If
End Sub