Bloquear celdas calculadas en una hoja

Tengo un grupo de celdas bloqueadas en una hoja, y un botón de Alerta que activa una macro donde se comparan 2 valores de diferentes celdas y si uno es menor que el otro cambia el color de fondo de la celda menor a rojo. Esta macro no me funciona si bloqueo las celdas. Y es necesario tenerlas bloqueadas para evitar introducir algún dato por error. ¿Alguna idea a como hacer?

1 Respuesta

Respuesta
2

Tu macro debe tener una línea que desprotege la hoja y la vuelve a proteger al finalizar la macro. Por ejemplo:

Sub macroAlerta()

Sheets("tu_hoja").Unprotect "tu_clave"

'.... tus instrucciones

Sheets("tu_hoja").Protect ("tu_clave")

End Sub

NOTA: alcanzará con que desprotejas recién antes de esas instrucciones que te crean el conflicto y a continuación volverla a proteger.

Hola Elsa,

Muchas gracias, Funciona, pero necesito bloquear de la columna A a la C dejar columna D desbloqueada y bloquear de la columna E a la H. No la hoja completa.

Saludos 

Aleida

La macro no cambia tu bloqueo ... lo que tienes bloqueado o no, se mantiene.

Solo te estoy agregando una opción según tu solicitud: '...Esta macro no me funciona si bloqueo las celdas...'

Entonces para que funcione tu macro, se desproteje la hoja al inicio de la misma y se vuelve a proteger al finalizar.

Para asegurarte que la estás protegiendo con los mismos permisos que tiene ahora podrías completar la instrucción con ellos. Tendrás que encender la grabadora, proteger tu hoja con tus permisos habituales y luego al detener la grabadora encontrarás en un módulo las instrucciones.

En este ejemplo opté por no permitir la selección de bloquedas, permitir Asignar formatos y uso de Autofiltros.

    ActiveSheet.Protect "tu_clave", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFiltering:=True
'no permite la selección de celdas bloqueadas
    ActiveSheet.EnableSelection = xlUnlockedCells

Por eso tenés que grabar tus propias instrucciones según tu caso.

Sdos!

Hola Elsa,

Muchas gracias, Funciona, pero necesito bloquear de la columna A a la C dejar columna D desbloqueada y bloquear de la columna E a la H. No la hoja completa.

Saludos 

Aleida

Hola Elsa... Muy buenos días!

Lo que me esta sucediendo ahora es que cuando pongo la instrucción :

Worksheets("ASN").UnProtect

.... instrucciones 

Worksheets("ASN").Protect

despues que ejecuta el .Protec me bloquea la hoja completa no solo las celdas que tenia bloqueada anteriormente a hacer el Unprotect?? 

Reitero lo dicho antes: esas 2 instrucciones no cambian tu bloqueo... Se bloquea porque se protege... ¿Pero ya tenías celdas bloqueadas por lo tanto entiendo que tú hoja ya estaba protegida... O no?

Si no lo podes resolver inicia otra consulta con todos los detalles de cómo estás bloqueando y todo lo demás.

Sdos!

¡Gracias Elsa! Muy buenos días.. Todo me funciono con el código siguiente,

Worksheets("ASN").Unprotect
Worksheets("ASN").Range("A3:V55").Interior.ColorIndex = xlColorIndexNone
Worksheets("ASN").Cells.Locked = True
Worksheets("ASN").Range("G3:G55, S3:S55, X3:X55").Locked = False
Worksheets("ASN").Protect

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas