Modificar datos en un libro protegido

Yo quiero des proteger un libro al cual le tengo una contraseña 123, luego mostrar una hoja que esta oculta, luego correr una macro que ya tengo creada, luego ocultar la hoja que inicialmente mostramos, y por ultimo volver a proteger el libro con la misma contraseña 123

¿Que código puedo manejar para des proteger el libro y que luego se vuelva a proteger con la misma contraseña ejemplo 123.?

2 Respuestas

Respuesta
3

Si el libro está protegido, no es necesario mostrar la hoja para actualizar sus celdas.

Tampoco es necesario desproteger el libro.

Por ejemplo, abre un libro nuevo, crea una hoja nueva llamada "Hoja2", oculta la hoja, protege el libro. Corre la siguiente macro:

Sub Actualizar_datos()
    Sheets("Hoja2").Range("D2") = "hola"
    Sheets("Hoja2").Range("D3") = "celda actualizada con libro protegido y hoja oculta"
End Sub

Ahora, revisa la "Hoja2", verás que las celdas han sido actualizadas. No fue necesario desproteger el libro ni mostrar la hoja.


Solamente si la hoja estuviera protegida, entonces sí, tendrías que desproteger la hoja y volver a proteger, pero incluso de esta forma tampoco es necesario mostrar la hoja, por ejemplo:

Sub Actualizar_datos()
    Sheets("Hoja2").Unprotect "abc"
    Sheets("Hoja2").Range("D2") = "hola"
    Sheets("Hoja2").Range("D3") = "celda actualizada con libro protegido y hoja oculta"
    Sheets("Hoja2").Protect "abc"
End Sub

La constante en las macros, es que para actualizar las celdas, hay que hacer referencia a la hoja. Si en tu macro tienes algo como esto:

Sheets("Hoja2").select
Range("D2").select
Range("D2").value = "Hola"

Entonces sí, tendrás que mostrar la hoja. En tal caso, lo recomendable sería mejorar la macro, para actualizar la hoja, sin necesidad de desproteger el libro ni mostrar la hoja.


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Respuesta
1

ActiveWorkbook.Unprotect password:="123"

Sheets("lahoja"). Visible= xlsheetvisible ' cambiar "lahoja" por como se llame tu hoja

'tu macro aquí

Sheets("lahoja").visible= xlsheetveryhidden

ActiveWorkbook.Protect password:="123"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas