Bloquear celdas

2 envíos / 0 nuevos
Último envío
nachico95
Imagen de nachico95
Offline
última acción: Hace 5 años 8 meses
alta: 05/07/2018 - 15:06
Puntos: 185
Bloquear celdas

Hola,

 

Tengo una hoja con 43 columnas y filas que van aumentando conforme meto datos. 

Tengo una macro que va almacenando esos datos, y me gustaría que a la vez que almaceno los datos se me bloquee la fila donde acabo de introducir los datos -50.(Se que seria meter la macro de bloquear en el de almacenar datos, pero no se como desarrollar la macro de bloquear celdas).

Es decir si almaceno datos y es la fila numero 150, que se me bloquee la numero 100.

Todo esto es para que cuando almacene le de cierto tiempo para poder corregir los datos almacenados en caso de error. Por ejemplo, ha metido la 150 y quiere corregir la 145.

También necesitaría una macro que fuese para desproteger todo(por si ocurre algo...). Eso no se si hay que darle directamente a desproteger hoja o como.

 

Muchas gracias.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 2 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Lo primero a tener en cuenta

Lo primero a tener en cuenta es que el bloqueo no es celda a celda, sino que lo que se bloquea es la hoja completa, así que tendrás que ir desbloqueando y bloqueando la hoja

esto se hace con los métodos Protect y Unprotect de la hoja

por ejemplo:

ActiveSheet.Protect 'esto protegería sin contraseña

 

Por defecto, las celdas se encuentran bloqueadas, cuando la hoja está desprotegida, no afecta, pero al proteger la hoja el que estén protegidas quiere decir que no se puede modificar su contenido.

Qué quiero decir con esto, que el planteamiento es al revés, tienes que desbloquear primero todo lo que quieras permitir que el usuario pueda modificar, las celdas donde pueda escribir. Esto lo puedes hacer a mano para toda la hoja, si quieres que puedan escribir en cualquier sitio (esto está en el formato de las celdas, pestaña Proteger (desmarca la casilla "Bloqueada").

bloquear y desbloquear celdas

luego protege la hoja, y déjala protegida (con el botón secundario del ratón en la pestaña con el nombre de la hoja en la parte inferior tienes las opciones para proteger la hoja).

Así que lo que tendrá que hacer tu macro es:

-Desproteger la hoja (con .Unprotect)

-localizar las filas que te interesen y Bloquearlas (el bloqueo/desbloqueo de un rango es su propiedad .Locked, así que puedes hacerlo con ElRangoQueTeInterese.Locked = True

-Volver a proteger la hoja (con .Protect)

 

------
Ya sé Excel, pero necesito más.