¿Macro para bloquear un rango de celdas por medio de un botón y que tenga contraseña?

Pido ayuda por favor para desarrollar una macro que, cuando yo presione un botón me bloquee un rango de celdas, (por ejemplo a11:a20) y que cambie de color, a un color gris oscuro,(como en las páginas web cuando algo no se puede diligenciar en un formulario, ése color).. Y que no se pueda desbloquear, o sea que tenga contraseña.

1 respuesta

Respuesta
1

Para poder bloquear un rango, en principio toda la hoja debiera estar 'desbloquada' y protegida y recién a partir de allí se irán bloqueando por rangos.

Entonces selecciona la hoja desde el cuadrito que se encuentra en la intersección de fila 1 col A.

Desde menú Formato, celdas, proteger, quítale el tilde a Bloquear.

Ahora seleccioná las celdas que sí debieran estar bloqueadas al inicio: ttítulos, celdas con fórmula, etc.

Y desde el mismo menú, tildar en bloquear y en Ocultar si se trata de fórmulas.

Ahora debes proteger la hoja con la contraseña elegida, y tildando las tareas que le permitirás al usuario realizar (dependerá de tu versión EXcel).

Así debe quedar tu libro de inicio.

Ahora, para desarrollar la macro, indicame tu versión Excel, la contraseña que elegiste (luego la podes cambiar) y si el bloqueo será solo de las celdas seleccionadas o de toda la fila del rango seleccionado.

Quedo atenta a tus aclaraciones.

Hola Elsa. He hecho todo tal cual lo apuntas. La contraseña es 123 y mi versión de excel es 2007.

Y si te entiendo bien, el bloqueo es para toda la fila del rango seleccionado, por ejemplo desde b1 hasta b10, todas las celdas en ese rango bloqueadas.

Bien, dibujá un botón con la barra de Formularios y asocialo a esta macro que previamente habrás pegado en un módulo del Editor:

Te conviene tener la hoja protegida sin tilde en 'seleccionar celdas protegidas'.

La protección desde la macro, se hará según las opciones que ya cuenta la hoja.

Sub Bloqueo()
'x Elsamatilde
'bloquea el rango de filas seleccionadas
'desprotege la hoja
 ActiveSheet.Unprotect "123"
'selecciona las filas de las celdas seleccionadas
 Selection.EntireRow.Select
'bloquea y oculta fórmuls
 Selection.Locked = True
 Selection.FormulaHidden = False
'vuelve a proteger
 ActiveSheet.Protect "123"
End Sub

Hola Elsa.

Estuve ensayando la macro pero no obtengo el resultado deseado, me deja bloqueado toda la fila. Específicamente, yo quiero que sea el rango b12 a k12. Inicialmente una persona diligenciara estas celdas, la celda L12 tendrá el botón que al dar click bloqueara las celdas b12 a k12 dejando intacto lo que diligenció. Eso deseo sea lo único que quede bloqueado en el libro y me confundo un poco porque en la macro no encuentro el espacio para escribir el rango de celdas que deseo este protegido (bloqueado) al hacer click en el botón.

Si se pudiese subir el archivo o enviárselo para explicarme, sería mucho mejor. De todos modos, espero haberme hecho entender.

Agradezco muchísimo su disposición, Elsa.

ES que así lo solicitaste:

'... El bloqueo es para toda la fila del rango seleccionado, por ejemplo desde b1 hasta b10, todas las celdas en ese rango bloqueadas.'....

Al solicitar una macro debes ser preciso, si AHORA resulta que necesitas hasta la col K así se te hará... pero luego no haré más cambios en la misma consulta.

No finalices aún que ya te la arreglo en un rato.

Sdos

Elsa

Aquí va la macro ajustada. En este caso no evalúa cuál es la celda seleccionada.

Sub Bloqueo()
'x Elsamatilde
'bloquea un rango fijo
'desprotege la hoja
 ActiveSheet.Unprotect "123"
'selecciona las celdas B12:K12
 Range("B12:K12").Select
'bloquea y oculta fórmuls
 Selection.Locked = True
 Selection.FormulaHidden = False
'vuelve a proteger
 ActiveSheet.Protect "123"
 'selecciona alguna otra celda: opcional
 Range("L12").Select
End Sub

Si en cambio, debe bloquear el rango B:K de la misma fila que la celda seleccionada, sería así la línea que selecciona el rango:

'selecciona las celdas B:K
Range("B" & ActiveCell.Row & ":K" & ActiveCell.Row).Select

Sdos y no olvides finalizar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas