Macro para cerrar libro despues de saber nombre del usuario

10/02/2006 - 23:41 por mandrake | Informe spam
Como elaborar una macro que busque el nombre el usuario y si no es el
que tendra registrada la macro (necesitare como indicarle que sean
varios nombres de usuario) el libro se cierre indicando con un mensaje
que no tiene derechos de uso. y en caso de que si este dentro de la
lista otro mensaje que indique que puede continuar con el uso del
archivo y ademas de todo que esta macro se ejecute cuando abran el
libro y habiliten las macros
 

Leer las respuestas

#1 Héctor Miguel
11/02/2006 - 06:12 | Informe spam
hola, sergio !

Como elaborar una macro que busque el nombre el usuario y si no es el que tendra registrada la macro
(necesitare como indicarle que sean varios nombres de usuario)
el libro se cierre indicando con un mensaje que no tiene derechos de uso
y en caso de que si este dentro de la lista otro mensaje que indique que puede continuar con el uso del archivo
y ademas de todo que esta macro se ejecute cuando abran el libro y habiliten las macros



1) el [unico?] 'problema' que veo en tu solicitud... es: que pasara cuando un usuario 'decida' NO autorizar las macros en tu libro :-(
si requieres que el usuario de tu aplicacion 'de permiso' [porque ES su opcion] para que se utilicen las macros...
op1: podrias preparar una 'pantalla' que le informe [en caso de que no esten habilitdas/permitidas/...] para 'tu' aplicacion
[obviamente, por el mismo codigo la ocultarias en caso de que tu aplicacion 'alcance' el permiso del usuario] :))
op2: si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\ revisa un articulo al respecto en:
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian servirte... 'de base' ;)

2) para el resto de tu consulta... te paso algunos ejemplos [de entre varias mas alternativas] al final del presente
[asumiendo que tu libro ya tiene 'permiso' del usuario para ejecutar sus macros] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=1) agrega un formulario CON SOLO un control textbox, al que le puedes asignar [p.e.] un asterisco en la propiedad 'PasswordChar'
2) copia/pega las siguientes lineas de codigo y procedimientos/eventos donde te indico a continuacion:
[se mostrara el formulario en la apertura del libro, el usuario debera ingresar 'su nombre' -> Y pulsar la tecla {enter} <= OJO]

-> en el modulo de codigo del libro [ThisWorkbook]...
Private Sub Workbook_Open()
UserForm1.Show
End Sub

-> en el modulo de codigo del formulario...
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Select Case TextBox1
Case "Usuario 1", "Alejandro", "Invitado 1", "Juan Pistolas", "Fulanito de Tal", "Otros nombres autorizados"
MsgBox "Bienvenido !!!" & VbCr & "Comencemos a trabajar..."
Case Else
MsgBox "Usuario NO autorizado !!!" & VbCr & "Este libro será cerrado DE INMEDIATO !!!"
ThisWorkbook.Close False
End Select
End Sub

las expresiones de texto del -> Case "Usuario 1", "Alejandro", "Invitado 1", "Juan Pistolas", "Fulanito de Tal" [etc. etc. etc.]
deben coincidir EXACTAMENTE con los nombres que vayas a autorizar para el uso de tu libro :)

OJO <-> TIP...
te recomiendo que NO utilices un MsgBox para 'avisarle' a un usuario que NO esta 'autorizado' a utilizar tu libro...
-> podria pulsar alguna tecla de interrupcion del codigo -> como {ctrl}+{pausa}... y EVITAR que tu libro se 'auto-cierre'...
[con lo cual]...este 'mecanismo' de seguridad/proteccion/... -> DEJA DE SER 'FUNCIONAL' ;)
haz algunad pruebas y... [ya comentaras si le sigues 'avisando'] :))

Preguntas similares