Saltar al contenido

Proteger libro de excel sin afectar macros


Recommended Posts

publicado

Que tal Amigos,

He creado un libro de excel con algunas Macros, sin embargo como sera utilizado por mas usuarios no me gustaria lo modificaran, hay alguna forma de proteger el libro sin afectar cuando se ejecutan las macros.

Gracias por su ayuda

publicado

Saludos.., por lo que se, excel cuenta con una opción de protección...

De la cinta de opciones, selecciona: DESARROLLADOR o PROGRAMADOR, dependiendo de la versión. Te abre la ventana (visual basic para aplicaciones) del menú de esta ventana selecciona:

Herramientas

Propiedades de VBAProject...

Te abrira una ventana, de esta selecciona la pestaña (protección) tiquea bloquear proyecto para visualización, introduce una contraseña y así no podrán modificar tus macros...

publicado

Gracias Bruckie por tu respuesta, creo que mi pregunta no fue un tanto acertada, me referia un poco a como bloquear el libro de excel para que no puedan modificar formulas y/o modificar las hojas de trabajo mas que lo permitido y que al ejecutar las macros se ejecuten sin algun error ya que actualmente si bloqueo las hojas o el libro mis macros no se ejecuta.

el codigo que tengo actualmente al inicio y final de cada macro es el siguiente

ActiveSheet.Protec

ActiveShet.Unprotect

Pero esto hace que tenga que ingresar contraseña y por ende se desbloquean las hojas de trabajo, hay alguna forma de bloquearlo sin afectar las macros?

Espero haberme explicado un poco mas y poder recibir su ayuda.

Gracias,

publicado

Hola Tocxos, ahora entendí mejor. Lo que tienes que hacer antes de proteger la hoja:

selecciona las celdas que no quieras que se bloqueen dale click derecho en tu selección, del menú selecciona la opción formato de celdas... Te abrira una ventana, de esta selecciona la pestaña Proteger. Te aparecerá las opciones de: Bloqueada y Oculta. Quita el check de bloqueada y aceptas.

Ahora puedes proteger tu hoja. Espero haber sido claro y de ayuda...

publicado

Intenta de esta forma

Private Sub UserForm_Initialize()
Dim hoja As String


hoja = "Hoja1"
Sheets(hoja).Activate
Sheets(hoja).Unprotect (Pass)

End Sub

Private Sub UserForm_Terminate()
Dim hoja As String

hoja = "HOja1"
Sheets(hoja).Protect (Pass)

End Sub[/CODE]

Y en un modulo

[CODE]Public Const Pass= "123"[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.