Jump to content

Obligar a que se habiliten las macros para poder usar un archivo


ULISES

Recommended Posts

Obligar a que se habiliten las macros para poder usar un archivo

Saludos compañeros mi consulta es saber si se puede o hay la manera por medio de un código de VBA de que un archivo no permita mostrar su información en dado caso las macros se encuentren deshabilitadas (Normalmente la seguridad de los macros siempre viene en alto).

Al abrir un archivo de 3hojas no permita la visualización de ellas hasta que las macros sean habilitadas.

Esta consulta la realizo con la intención de dejar un aporte en el foro, por el cual se puede obligar al usuario a habilitar las macro antes de poder ver las demás hojas que contiene el archivo por medio del método de propiedades VeryHidden, sin embargo no se si ya se ha resuelto esta pregunta anteriormente y es por ello que acudo a los mas expertos en el tema de Macros y Programación VBA.

Saludos

Link to post
Share on other sites

Creo que este tema se ah visto anteriormente, no recuerdo bien, pero creo que solo hay dos metodos:

1. Deshabilitar la seguridad de las macros en la maquina donde se ejecutara el archivo.

2. Ocultar las hojas secundarias cuando se cierre el libro, y que en la primera hoja, exista un aviso que "Habilite las macros" para que el archivo funcione, y bloquear el VBA con una clave.

Ahora, no se que tan factible sera con el programa que convierte tu arhichivo de excel en un arhivo .exe, no lo e probado.

Esperamos mas respuestas.

Link to post
Share on other sites

2. Ocultar las hojas secundarias cuando se cierre el libro, y que en la primera hoja, exista un aviso que "Habilite las macros" para que el archivo funcione, y bloquear el VBA con una clave.

Sencillito, pero eficiente. Eso sí, siempre hay que salvar al salir para que te vuelva a salir la pagina principal, es lo malo.

password: password (pa que complicarnos)

las otras opciones yo tambien quiero conocerlas!

un saludo

Acceso con contraseña_sencillo_rocio-password.rar

Acceso con contraseña_sencillo_rocio-password.rar

Link to post
Share on other sites

Hola Ulises, te paso un archivo el cual me dió el código el compañero TUVE cuando yo pedí una solución igual, y luego lo implementé con un tutorial para habilitar las macros tanto para 2003 como para 2007, ya que hay gente que no sabe hacerlo.

Antes de abrirlo, deshabilita tus macros para ver su efectividad, espero te guste y cumpla tus expectativas.

Saludos, Germán.

Habilitar_Macros_TUVE_GERMAN.part1.rar

Habilitar_Macros_TUVE_GERMAN.part2.rar

Habilitar_Macros_TUVE_GERMAN.part3.rar

Habilitar_Macros_TUVE_GERMAN.part1.rar

Habilitar_Macros_TUVE_GERMAN.part2.rar

Habilitar_Macros_TUVE_GERMAN.part3.rar

Link to post
Share on other sites

Gracias por tu respuesta Roci0

Sin embargo te cuento que no lo pude abrirlo y el visualizador de proyectos esta bloqueado como para ver el código no se, si me pase algo por alto en tu respuesta y no lo pude abrir jejeje

Saludos

- - - - - Mensaje combinado - - - - -

Saludos German en efecto ese código es idéntico al que yo tengo pero el tuyo es mas resumido sin embargo no se porque tu archivo pesa tanto, de todas maneras dejare abierto el tema por otras horas mas, a ver quien mas da aportes si no pues cargare mi archivo aquí y no en la sección de aporte, en vista de que ya se ha preguntado anteriormente sobre este tema.

Saludos

Link to post
Share on other sites

la contraseña era "password" tanto para el acceso de las hojas como para visualizar el vba, pero lo de german parece muy interesante...

- - - - - Mensaje combinado - - - - -

vale, tienes excel 2003, sorry por no haberme dado cuenta antes

Acceso con contraseña_sencillo_rocio-password_v2003.xls

Acceso con contraseña_sencillo_rocio-password_v2003.xls

Link to post
Share on other sites

Hola, ando necesitando algo igual ------ la solucion de ROCIO me parece va bien, ... pero podrias explicar con algo de detalle como funciona, .. no entiendo lo de las dos contraseñas para que -------- la hoja datos que se carga al introducir la contraseña es para que ???

- - - - - Mensaje combinado - - - - -

ROCIO me podrías ayudar haciendo eso para este libro que anexo, pero que solo me muestre esa portada que exige que se habiliten las macros para poder introducir una contraseña y acceder al resto de hojas del libro Excel ------ que al introducir la contraseña, antes obligándome a habilitar las macros para poder hacerle me cargue (muestre) el resto de hojas con mis datos y demas macros que utilice como en el caso de este libro que ya tengo macros previas.

mil gracias de antemano, ... ojala y me puedas ayudar, ... me parece genial la opción que das :nevreness:

anexo libro

https://dl.dropbox.com/u/106083928/Formato-Prep%20Medios__2.xls

Link to post
Share on other sites

Hola a todos

Esta es mi primera participación en este foro.

Sugiero que para abrir tu "Libro_con_mis_macros" con las macros activadas, lo hagas desde otro libro que contenga un código de apertura de libro.

Veras que al abrir un "Libro_con_mis_macros" desde otro libro con otra macro, el libro sera abierto directamente con las macros activadas.

Para mejor comprensión adjunto archivo con código ejemplo

Saludos a todos

- - - - - Mensaje combinado - - - - -

Hola a todos

Esta es mi primera participación en este foro.

Sugiero que para abrir tu "Libro_con_mis_macros" con las macros activadas, lo hagas desde otro libro que contenga un código de apertura de libro.

Veras que al abrir un "Libro_con_mis_macros" desde otro libro con otra macro, el libro sera abierto directamente con las macros activadas.

Para mejor comprensión adjunto archivo con código ejemplo

Saludos a todos

LLAVE.xls

LLAVE.xls

Link to post
Share on other sites

hola, lo siento pero no he podido contestar.

a ver, en el archivo se abre la hoja datos porque ahi puedes cambiar la contraseña de acceso. si la modificas en la hoja datos, tambien se modifica la contraseña de acceso, peeeeeroooo puedes adaptarlo para que no te muestre la hoja datos o para que directamente no necesite la hoja datos (que la contraseña se cambien en el codigo y no en la hoja).

la hoja datos tambien sirve para que si usas mucho el archivo, y estas seguro que por el momento nadie te va a curiosear, puedas indicarle que no se active la hoja de contraseña al inicio.

te adjunto un libro sin hoja datos. es lo mismo pero sin poder modificar la contraseña en la hoja.

password1: "password1"

password2: "password2"

password de vba: "password"

a ver, de todas formas, se puede quitar la solicitud de contraseñas de tal manera que solo te exija apretar un boton para visualizar las hojas, y como el boton solo se activa con macros, pues hace el mismo efecto. lo de las contraseñas es solo un extra que permite controlar ademas el acceso, nada mas, no es importante

pero este era un tema de ulises, si vas a preguntar algo mas, abre un tema nuevo.

Acceso con contraseña_sencillo_rocio-password2.rar

Acceso con contraseña_sencillo_rocio-password2.rar

Link to post
Share on other sites

Bueno amigos con este aporte doy por cerrado el tema.

Los macros por lo general vienen con una segurita alta la cual no permite usar los macros, y normalmente cuando nuestros archivos tienen seguridad de macros y códigos por todas partes eso no nos sirve de nada porque los macros no se activarían y como se sabe que no hay manera de usar una macro para activar macros, una técnica para asegurar que el usuario ha habilitado las macros es necesaria. Este método le dice al usuario que debe habilitar las macros y como hacerlo, y se aplica cada vez que se guarda el libro. Si el usuario abre el libro con macros habilitadas, todas las hojas se mostraran por la macro. La ocultación de las hojas se hace usando Excel propiedad VeryHidden, lo que significa que las hojas no puede ser mostrada usando los menús de Excel. Tenga en cuenta que, esto sólo afecta a este libro, por lo que un usuario puede utilizar una macro de otro libro para mostrar todas sus hojas. Sin embargo, si el usuario no es un experto en Excel no podrá entrar en su archivo de todos modos.

Pasos a Seguir:

Cambiar el nombre de una hoja de cálculo en el libro para "Macros".

Poner un mensaje en la página que indica al usuario habilitar las macros.

Copiar el código anterior

Nos vamos al explorador de proyecto VBA

En el explorador de proyecto, busque el objeto ThisWorkbook.

Haga doble clic en el objeto ThisWorkbook.

Pegue el código en el panel derecho.

Guarda el libro antes de cualquier otro cambio.

Cierre y vuelva a abrir el libro.

Si vuelve a abrir el libro con las macros desactivadas, debería ver la pantalla de advertencia.

Si vuelve a abrir el libro con las macros habilitadas, debe consultar a su pantalla de advertencia por un segundo, entonces usted debe ver todas las otras hojas y la pantalla de advertencia se desaparecerá.

Clave del proyecto VBA del archivo adjunto: 123

Saludos cordiales

Option Explicit
Const WelcomePage = "Macros"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
With ThisWorkbook
If Not .Saved Then
Select Case MsgBox("Desea guardar los cambios realizados a '" & .Name & "'?", _
vbYesNoCancel + vbExclamation)
Case Is = vbYes
Call CustomSave
Case Is = vbNo
Case Is = vbCancel
Cancel = True
End Select
End If
If Not Cancel = True Then
.Saved = True
Application.EnableEvents = True
.Close savechanges:=False
Else
Application.EnableEvents = True
End If
End With
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Call CustomSave(SaveAsUI)
Cancel = True
Application.EnableEvents = True
ThisWorkbook.Saved = True
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Call ShowAllSheets
Application.ScreenUpdating = True
End Sub
Private Sub CustomSave(Optional SaveAs As Boolean)
Dim ws As Worksheet, aWs As Worksheet, newFname As String
Application.ScreenUpdating = False
Set aWs = ActiveSheet
Call HideAllSheets
If SaveAs = True Then
newFname = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xls), *.xls")
If Not newFname = "False" Then ThisWorkbook.SaveAs newFname
Else
ThisWorkbook.Save
End If
Call ShowAllSheets
aWs.Activate
Application.ScreenUpdating = True
End Sub
Private Sub HideAllSheets()
Dim ws As Worksheet
Worksheets(WelcomePage).Visible = xlSheetVisible
For Each ws In ThisWorkbook.Worksheets
If Not ws.Name = WelcomePage Then ws.Visible = xlSheetVeryHidden
Next ws

Worksheets(WelcomePage).Activate
End Sub

Private Sub ShowAllSheets()
Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets
If Not ws.Name = WelcomePage Then ws.Visible = xlSheetVisible
Next ws
Worksheets(WelcomePage).Visible = xlSheetVeryHidden
End Sub
[/code]

A su vez dejo adjunto un archivo de ejemplo

Saludos al a,igo German por su respuesta, este archivo es prácticamente igual al tuyo German pero diferente y menos pesado, lo dejo por si acaso compañeros y así tienen otra opción jejeje...

Habilitar Macros.xls

Habilitar Macros.xls

Link to post
Share on other sites

Hola ULISES y a todos los compañeros

Yo he pasado mucho tiempo intentando éste tema y buscando en múltiples sitios, no he encontrado nada en condiciones, yo oculto las tablas justo en el momento de cerrar el libro, y luego al abrirlo de nuevo solo se ve la hoja de entrada con el usuario y la clave, pero claro, estamos en lo de siempre, que no hay una gran seguridad con el tea.

Si trabajas siempre en el mismo PC, le puedes dar al archivo un certificado de garantía o seguridad, creo recordar que se llama así, lo tendría que mirar, si te interesa mucho, lo puedes hacer desde las barras de herramientas, de esa manera no te preguntará nunca si quieres habilitar las macros, se habilitarán automáticamente, pero como te digo solo sirve para tu PC, si trabajas en red lo tienes que hacer en cada uno de los terminales.

Salud_2

Link to post
Share on other sites

Ya que este tema esta candente, me puse a investigar si excel se podria abrir a traves de las API de windows, y nada... la unica forma que queda, para que se ejecuten las macros sin preguntas ni nada, es la siguiente:

1. Ubicación de confianza para sus archivos:

Pueden visitar el siguiente link para que lo hagan ustedes mismos.

Agregar, quitar o modificar una ubicación de confianza para sus archivos - Excel - Office.com

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

Privacy Policy