Bloqeuo de celdas activas de forma automática

Estimados Buenos días
Muy agradecido por su ayuda en este portal, bueno quisiera solicitar nuevamente su ayuda con lo siguiente
necesito una macros que me bloque las celdas activas de una hoja de excel que cumpla la siguiente función
esta plantilla tiene valores en A1:A7; C1:C7; E1:E7, al abrir el archivo deben estar bloqueadas solo estas celdas, para que me permita ingresar datos en A8, C8, E8 y al cerrar el archivo se bloquen las celdas con los datos antiguos más los datos nuevos.
Después al día siguiente al abrir el archivo nuevamente solo me permita ingresar datos en A9, C9, E9 y al cerrar se bloquen los datos antiguos y más los datos nuevos.
Por su ayuda muchas gracias

1 respuesta

Respuesta
1
Acá los macros
En un modulo pones esto:
Sub proteccion()
Dim n As Long
' contar elementos
n = Application.WorksheetFunction.CountA(Sheets(1).Range("A:A")) + 1
'desbloquea hoja
ActiveSheet.Unprotect Password:="1234"
'desbloquea celda sgte
Range("A" & n).Select: Selection.Locked = False
Range("C" & n).Select: Selection.Locked = False
Range("E" & n).Select: Selection.Locked = False
' bloquea hoja con password
ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub bloquea_ingresados()
Dim n As Long
n = Application.WorksheetFunction.CountA(Sheets(1).Range("A:A"))
'desbloquea hoja
ActiveSheet.Unprotect Password:="1234"
'bloquea celda editada
Sheets(1).Range("A" & n).Select: Selection.Locked = True
Sheets(1).Range("C" & n).Select: Selection.Locked = True
Sheets(1).Range("E" & n).Select: Selection.Locked = True
ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End SubHola
y en el objeto ThisWorkbook pones esto:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
bloquea_ingresados
End Sub
Private Sub Workbook_Open()
proteccion
End Sub
Consideraciones:
Estas macros están realizadas sobre el supuesto que tus datos están en la hoja 1 del libro si deseas aplicarlo sobre otra hoja, debes modificar el indice de la hoja en cada linea
Sheets(1)
Donde 1 es el numero de la hoja.
El password utilizado es 1234 tu debes cambiarlo y "no olvidarlo".
Operatividad:
Cuando abres el libro el macro desbloquea la celda siguiente a la última con datos, quedando esta disponible para edición. Luego si el usuario "graba" la hoja, estas celdas ( editadas) se bloquean nuevamente, no pudiendo el usuario hacer ingreso de otros datos a menos que cierre y habrá otra vez el libro.
Eso es todo
No olvides CERRAR la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas