Dar color a celda (no bloqueada) activa, dentro de una hoja protegida

Como le puedo dar color a una celda activa (dicha celda dentro de sus propiedades no esta bloqueada), las posibles celdas activas están dentro de una hoja protegida

Ejemplo

Mi archivo digamos que solo abarca el rengo de A1:D4, y digamos que el Rango B2:C3 son las cuatro celdas que tengo como NO BLOQUEADAS, el resto de la hoja esta bloqueada y protegida por contraseña.

Estoy usando esta macro para dar color a las celdas activas y quitarles el color cuando no están activas, como puedo hacer para que la macro me funcione dentro de una hoja protegida

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ColorCell
End Sub
Private Sub ColorCell()
Cells.Interior.ColorIndex = xlNone
ActiveCell.Font.Bold = False
ActiveCell.Interior.ColorIndex = 37
ActiveCell.Font.Bold = True
End Sub

Esta macro me funciona siempre y cuando la hoja no este protegida, y tal vez lo que ocupe sea ora macro que solo se ejecute si estoy en una celda activa no bloqueada

1

1 respuesta

Respuesta
1

Te mando mi solución:

Dentro de esta macro-evento tienes que sustituir la palabra "contraseña" que aparece dos veces por la contraseña que tengas en tu hoja.

Cuando pulses dentro del rango A1:D4 se activará para pintar de rojo solo la celda activa de dicho rango.

Public fila
Public columna
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("a1:d4")) Is Nothing Then
ActiveSheet.Unprotect Password:="contraseña"
Cells(fila, columna).Interior.ColorIndex = xlNone
ActiveCell.Interior.ColorIndex = 3
fila = ActiveCell.Row
columna = ActiveCell.Column
ActiveSheet.Protect Password:="contraseña"
End If
End Sub

recuerda finalizar la consulta

Hola Luis buen dia, bueno en españa ya son buenas tardes, Saludos

oye pues bien, la macro-evento que me has enviado funciona bien ya que cumple con lo de proteger y desproteger la hoja con la contraseña cada vez que se activa una celda, pero... ahora mi problema es el siguiente, mi verdadero archivo tiene varias celdas las cuales están en filas y columnas diferentes cada una de ellas, dentro de mi mismo archivo hay celdas que están bloqueadas por ejemplo:

............A........................B

1...NOMBRE:..............MIGUEL

2...APELLIDO:............DIAZ

En el ejemplo yo tendría bloqueadas las celdas A1 Y A2, ahora estal celdas aparte de bloqueadas las tengo rellenas de un color por ejemplo azul (es el formato de la celda), si uso la macro como me la has pasado el detalle es que si por accidente el usuario toca o posiciona el cursor en A1 y esta celda se vuelve activa se pinta con el color ROJO de la macro que me enviaste y después de dejar de ser celda activa o al pasar a otra celda esta celda A1 que originalmente estaba en AZUL, ahora se queda en "SIN RELLENO", como puedo hacer para que no se modifique el color original de dichas celdas,

otra opción, hace un par de días me ayudaste con la pregunta de una macro para que con el ENTER se pasara a la siguiente celda consecutiva de ccaptura, recuerdas?, se podría poner alguna macro como esta que me ayudaste del ENTER, pero que detecte si la celda esta bloqueada no haga ningún cambio de color y si no esta bloqueada entonces si que la celda activa no protegida se llene de un color

espero haberme explicado bien.

saludos

Ok, pues entonces utiliza la macro así:

De esta manera solo afecta al rango B2:C3

Public fila
Public columna
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("b2:c3")) Is Nothing Then
ActiveSheet.Unprotect Password:="contraseña"
Cells(fila, columna).Interior.ColorIndex = xlNone
ActiveCell.Interior.ColorIndex = 3
fila = ActiveCell.Row
columna = ActiveCell.Column
ActiveSheet.Protect Password:="contraseña"
End If
End Sub

Como siempre excelente Luis, para seleccionar varias celdas diferentes le he agregado el Union(Range( y ha funcionado muy bien

muchas gracias Luis

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas