Application.OnTime TimeValue

Después de buscar en muchos foros, aun no puedo hacer que mi macro corra a cierta hora, lo que quiero hacer es que a las 3 pm mi libro de excel se proteja, para que los trabajadores después de las 3 pm ya no puedan meter o caprturar datos en la hoja... Tengo que terminarlo en menos de una semana, necesito ayuda por favor! Para hacer una prueba yo hice este código, con hora de 10:25 am para si si salia empezar a poner el código de proteger la hoja o el libro para ver si me copiaba y pegaba a esa hora que puse, pero no me funciona, no se cual es mi error, espero tu respuesta pronto, gracias
Sub Auto_Open()
Application.OnTime TimeValue("10:25"), "Macro1"
End Sub
Sub Macro1()
Range("B8:F18").Select
Selection.Copy
Range("B22").Select
ActiveSheet.Paste
End Sub
No se que otra cosa le tengo que poner, o si tengo que añadir algo de el evento ontime en Macro1 :S espero respuesta ! Gracias.
PD: si me puedes ayudar también con el código de proteger hoja estaría muuuuy agradecía

1 respuesta

Respuesta
1
Para tu cuestión no existe problema, mira pra proteger y desproteger la hoja las lineas de código son estas:
Sheets("Hoja1"). Unprotect "TuClave" 'Codigo para desproteger
'Aquí pones lo que quieras que haga tu macro
Sheets("Hoja1"). Protect "TuClave" 'Codigo para proteger, cambia por el nombre de tu hoja
Siguiendo con tu ejemplo la macro quedaría así:
Sub Auto_Open()
Application.OnTime Time TimeValue("10:25"),"Macro1"
End Sub
__________________________________________________________________
Sub Macro1()
Range("B8:F18").Select
Selection.Copy
Range("B22").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Hoja1").Protect "La clave que tú quieras", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Y ya lo tienes, a la hora indicada 10:25 se ejecutará la macro "Macro1", para que esto funcione ahora tienes que guardar el libro darle un nombre y cerrarlo. Acto seguido lo vuelves a abrir y lo dejas abierto, la macro con la instrucción Auto_Open significa que cuando el Libro se abra ejecutará la macro automáticamente, como la primera linea es una instrucción de Tiempo cuando la hora del sistema ( hora del reloj de Windows) llegue a la hora indicada se ejecutará lo que tu hayas puesto en la linea OnTime TimeValue.
¡OJO! Todo esto debe ir puesto en un módulo que debes de insertar en el libro, abres VBA y en el árbol de carpetas de la izquierda pinchas con el derecho y eliges insertar módulo y en la ventana que aparece escribes lo que te he puesto, guardas>cierras>y vuelves a abrir dejándolo abierto (si quieres minimizado)
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas