Crear macros para desactivar celdas

Tenemos un archivo de excel y necesitamos que al momento de ingresar un valor en cualquier celda, ya no se deje modificar ni editar el valor ingresado en la celda... Esto se podría hacer.

1 Respuesta

Respuesta
1

. 27.01.17 #VBA Bloquear celdas

Buenos días, Krauxs

Sí, es posible.

El primer paso será seleccionar toda la hoja o, si prefieres, el área donde sí se pueden ingresar datos y -con esas celdas seleccionadas- acceder al menú de formato de celdas (Atajo: Ctrl + 1).

Allí -en la pestaña "Proteger"-quita la marca a la casilla "bloqueada"

Esto permitirá el ingreso de datos en la celdas seleccionadas.

Luego activa el editor de Visual Basic (presiona Alt+F11) y en el panel de la izquierda busca la hoja donde quieres que esto ocurra. Da doble click sobre ella. (Otra forma de llegar a este punto es hacer click derecho sobre la solapa de esta hoja y elegir la opción "Ver Código).

Allí pega el siguiente procedimiento de VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
Clave = "TUCLAVE"
'  
If Not IsEmpty(Target) Or Len(Target) Then
    Target.Locked = True ' impide modificar
    Target.FormulaHidden = True ' impide ver fórmula en esa celda
End If
ActiveSheet.Protect Password:=Clave, DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub

Verás que dejé una variable en él para el caso de que quieras que la hoja quede protegida con una clave.

Cierra el editor y lo tendrás funcionando.

Cada vez que se ingrese un dato en esas celdas quedarán bloqueadas.

Entiendo que esto es lo que solicitaste.

Pero te comento algo más

Como verás, la clave queda expuesta a quien quisiera/pudiera entrar a esta página de VBA.

Entonces puedes protegerlo para que no pase.

Accede al Editor de Visual Basic, en su Navegador de Proyectos, busca el de tu archivo –cierra todos los elementos que tenga asociado- haz click derecho sobre él. Elige “Propiedades del VBA Project”. Selecciona la solapa de Protección, marca la casilla de “Bloquear proyecto para visualización” y también ingresa otra contraseña aquí.

HOLA FERNANDO 

Si me funciona pero solo con una celda al momento de ingresar datos en otra celda me sale error 

.

Ok, prueba con esta variante. En mi equipo funcionó OK:

Private Sub Worksheet_Change(ByVal Target As Range)
Clave = "TUCLAVE"
'  
If Not IsEmpty(Target) Or Len(Target) Then
    ActiveSheet.Unprotect Password:=Clave
    Target.Locked = True ' impide modificar
    Target.FormulaHidden = True ' impide ver fórmula en esa celda
End If
ActiveSheet.Protect Password:=Clave, DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas