Proteger celdas en función de rango dinámico

Hola... Pongamos que tengo un rango al que le he dado un nombre (PROVEEDOR), y me interesa que ese rango esté protegido (es decir, que estén bloqueadas sólo esas celdas, y por tanto sólo ellas queden protegidas). Sé cómo proteger celdas concretas de una hoja, pero en este caso me interesa que al añadir un Proveedor a continuación (que gracias a Desref y Contara se añade al Rango PROVEEDOR: rango dinámico), éste también quede bloqueado y protegido como el resto del rango.

Gracias.

1 Respuesta

Respuesta
1

Programamos el evento change de la hoja en cuestión de esta manera:

(En mis supuesto mi rango dinámico está en la columna A)

Pasos:

1- Antes de escribir la macro tienes que tener creado el rango dinámico.

2- Antes de escribir la macro y con los primeros datos escritos en la columna A, tienes que dejarles bloqueados y al resto de la hoja no

3- Por ultimo protege la hoja y después prepara este evento. (En mi caso no he puesto contraseña)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then

ActiveSheet.Unprotect

Target.Locked = True

ActiveSheet.Protect

End If

End Sub

Recuerda finalizar y puntuar

No lo entiendo... He hecho lo que me has dicho. Después he añadido un proveedor en la columna (en mi caso también es la A) y le he dado a Enter. Luego he procedido a borrar el contenido de la celda y no me ha salido el mensaje de Proteger... Supongo que se me escapa algo (tampoco veo que el "evento" tenga asignada ninguna macro...).

A ver qué me comentas. Gracias.

Mejor me dices un mail y te mando el archivo para que lo veas tu mismo

Mi email es: [email protected]

Me gustaría comentar una solución que se me ha pasado por la cabeza, a ver qué te parece: hago una macro (con las condiciones previas descritas por ti en los 3 primeros paso, excepto lo del evento...) que consiste en: desprotejo hoja >> escribo el nombre del rango dinámico en el cuadro de nombre >> desbloqueo/bloqueo el rango (ya seleccionado) >> ordeno la columna alfabéticamente >> protejo hoja.

Gracias.

Parece que el mensaje se ha desvirtuado... Repito las últimas líneas:

que consiste en: desprotejo >> escribo el nombre del rango dinámico en el cuadro de nombre >> desbloqueo/bloqueo el rango (ya seleccionado) >> ordeno la columna alfabéticamente >> protejo hoja.

Ya te lo he enviado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas