Restringir uso de macros a ciertos usuarios????

04/02/2004 - 11:06 por claudio | Informe spam
Tengo un libro que tiene unas macros pero quiero que el
usuario no vaya a Tools\Macro\Macros y la ejecute desde
ahí. Aunque quiero que los administradores y a través de
código VBA si se pueda ejecutar.
Se puede hacer que un usuario no ejecute una macro a
menos que ponga una password o de alguna otra manera???
(NO PUEDO CONFIGURAR EL EXCEL DEL USUARIO PARA QUE NO
EJECUTE NINGÚN TIPO DE MACRO, ES SOLAMENTE PARA ESTE
ARCHIVO)
 

Leer las respuestas

#1 Fernando Arroyo
04/02/2004 - 13:27 | Informe spam
Si declaras los subs como Private, p.ej.:

Private Sub MiMacro()

las macros no aparecerán al hacer Herramientas->Macro->Macros, pero sí podrán ser ejecutadas desde código.

Una medida adicional de seguridad podría ser que los subs tuvieran un argumento opcional en su declaración. Al llamarlos, habría que pasar una contraseña, y si dicha contraseña no estuviera, el código terminaría sin más; algo como:

Private Sub MiMacro(Optional contraseña As String)
If contraseña <> "contraseña" Then Exit Sub
'
'Resto del código
'
End Sub

Para llamar al sub anterior, el código sería

Sub Llamar()
MiMacro "contraseña"
End Sub

si la llamada se produjera desde el mismo libro, y

Sub Llamar2()
Application.Run "NombreDelLibro.xls!MiMacro", "contraseña"
End Sub

si se produjera desde otro.

Un saludo.


Fernando Arroyo
MS MVP - Excel


"claudio" escribió en el mensaje news:954901c3eb06$8ee131c0$
Tengo un libro que tiene unas macros pero quiero que el
usuario no vaya a Tools\Macro\Macros y la ejecute desde
ahí. Aunque quiero que los administradores y a través de
código VBA si se pueda ejecutar.
Se puede hacer que un usuario no ejecute una macro a
menos que ponga una password o de alguna otra manera???
(NO PUEDO CONFIGURAR EL EXCEL DEL USUARIO PARA QUE NO
EJECUTE NINGÚN TIPO DE MACRO, ES SOLAMENTE PARA ESTE
ARCHIVO)

Preguntas similares