Macro para bloquear hoja de excel después de cierta hora ya no puedan modificarla

Quisiera saber que sintaxis puedo utilizar si requiero que en una hoja de excel después de las 7:¿59 am ya nadie pueda capturar en esa hoja?

He indagado mucho pero no me sale con el código que quiero implementar alguien que me pueda apoyar por lo menos con la fuinción y de ahí basarme.

1 respuesta

Respuesta

Es posible lo que pides. Lo primero que debes hacer es abrir tu libro y después el editor de Visual Basic. En el Proyecto haces doble click en el Objeto ThisWorkbook y escribes lo siguiente:

Private Sub Workbook_Open()
Sheets("Aquí va el nombre de tu hoja").Select
Application.OnTime TimeValue("07:59:00"), "proteger"
End Sub

Explico:

El evento Sub Workbook_Open nos "correrá" en automático cuando se habra el libro, y la macro "proteger" a partir de que se cumple la hora determinada, en tu caso, a las 07:59 hs.

Posterior a esto insertas un Módulo, lo abres y escribes esta macro:

Sub proteger()
Sheets("Hoja1"). Protect "123" '(sustituye los números del paréntesis por tu password)
Application. ActiveWorkbook. Save '(con este comando se guarda el libro)

'El comando que sigue puedes incluso activarlo para que te cierre el libro en automático:

ThisWorkbook. Close

End Sub

Al abrir de nuevo el libro no podrás modificarlo ya que quedó protegido, obviamente solo si escribes la contraseña para desprotegerlo. La hora que le estás indicando podrás cambiarla a tu antojo.

Hola, primero que nada muchas gracias por tu apoyo, me sirve de mucho solo una duda en mi libro tengo 24 pesatañas que son las 24Hrs del dia, y quiero que por ejemplo tengo la pestaña de las 8:00 y quiero que después de las 8:59 se bloquee la hoja y ya nadie pueda ingresar datos, tengo entendido que si utilizo el thisworkbook es para todo el libro vdd, como lo puedo hacer por hoja??

En este caso, lo que tendrías que hacer, es copiar la misma instrucción dentro del mismo evento Workbook_Open

Este es el código del evento que ya tienes

Private Sub Workbook_Open()
Sheets("Nombre de tu hoja").Select
Application.OnTime TimeValue("07:59:00"), "proteger"
End Sub

Después del comando Applicatión. On Time... seleccionas la otra hoja que deseas proteger:

Sheets("Tu otra hoja").Select y

Application. OnTime TimeValue("08:59:00"), "nueva macro"

Esto significa que tendrás que crear una nueva macro por ej. con el nombre de proteger2 (ó Sub "nombre_de_tu_hoja") con el mismo código de la macro anterior previo cambio de los datos necesarios:

Sub nueva_macro()

Sheets("Tu_otra_hoja").Select 'Con este código primero seleccionamos la hoja para protegerla

Sheets("Tu_otra_Hoja"). Protect "123" '(sustituye los números del paréntesis por tu password o si deseas conservar el mismo)
Application. ActiveWorkbook. Save

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas