Inicio > Microsoft Excel > patanrisitas > MACRO DE USUARIO Y CONTRASEÑA

MACRO DE USUARIO Y CONTRASEÑA

Experto:
Usuario:
Fecha: 27/08/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
22/08/2008
kakashi0223, usuario preguntando en Microsoft Excel
Usuario
Hola.
 
Oye necesito un favorsote.
 
Lo que pasa es que quiero uan macro donde al introducir su nombre de usuario y contraseña les de acceso al libro de excel.
 
Me gustaria que esta ontraseñas estuvieran en una hoja de excel y saber cuando entro uno de ellos.
 
Se puede?
 
Gracias y saludos
22/08/2008
kakashi0223, experto respondiendo en Microsoft Excel
Experto
Q+ Kakashi,
Primero asegurate de tener dos hojas al menos en tu libro de trabajo.
Ejemplo Hoja1 y Hoja2
- Luego abre VisualBasic (ALT+F11)
- En el panel izquierdo has doble Click en ThisWorkbook
- Alli copias el siguiente código:
Private Sub Workbook_Open()
MsgBox ("Hola Kakashi, te saluda Richard Chacón") ' Muestra un saludo al abrir el libro
Worksheets("hoja1").Range("A1").Value = 1 'Genera un valor en una celda al abrir
Application.CommandBars.FindControl(ID:=30029).Enabled = True 'Inhabilita Desproteger
'Para que funcione, se debe cambiar el True por False
UserForm1.Show ' Muestra el User Form para solicitar Usuario y Clave
End Sub

-  Ahora crea el priemer UserForm (UserForm1). Menú Insertar-UserForm
- Le Asignas un TextBox y un Botón de Aceptar, al que le copiaras este código:
Private Sub CommandButton1_Click()
Dim Clave1, Usuario
Clave2 = TextBox1.Value
Range("Clave2") = Clave1
Usuario = Range("ElUsuario").Value
If Usuario <> "Invalido" Then
ActiveSheet.Unprotect "123"
Unload Me
Else
MsgBox ("Clave inválida")
End If
End Sub

 
 -Luego creas el 2do UserForm al que le asignas otro TextBox y un Boton de Aceptar con el siguiente código:
Private Sub CommandButton1_Click()
Dim Clave
Clave = TextBox2.Value
If Clave = 1234 Then
Unload Me
UserForm1.Show
Else
MsgBox ("Clave inválida")
End If
End Sub

 
-Luego en la Celda A1 de la Hoja2 escribes "El Usuariode hoy:"
- En C1 de la Hoja2 escribes la siguiente Fórmula: =SI(ESERROR(BUSCARV(D1;Usuarios;1));"Invalido";BUSCARV(D1;Usuarios;1))
 - A D1 de la Hoja2 le asignas un Nombre de Rango llamado Clave. Se hace por Insertar Nombre Definir
- Desde A2 hacia abajo los Usuarios
- Desde B2 hacia abajo las Claves de los Usuarios
- Desde C2 hacia abajo los ID de los Usuarios, ejm RCORRALES
Prueba con esto y me avisas..
Saludos,
RCh.


 
 
25/08/2008
kakashi0223, usuario preguntando en Microsoft Excel
Usuario
Hola, Gracias por tu ayuda.
 
Solo una duda, lo que pasa esque cuando lo corro me marca error en Range osea en.
Range("clave2")=Clave1 y de ahi en adelante no corre.
 
Y otra cuando se llama la primer userform, ahi que se captura lo de rango (a1)?.
 
Gracias y saludos
26/08/2008
kakashi0223, experto respondiendo en Microsoft Excel
Experto
Q+ Kaka,
Creo que mejor te mando un ejemplo... dame un correo!
richardchaconb@gmail.com
Acá tienes de todos modos los códigos para el UF1:
Private Sub CommandButton1_Click()
Dim Clave1, Usuario
Clave1 = TextBox2.Value
Range("Clave1") = Clave1
Usuario = Range("ElUsuario").Value
If Usuario <> "Invalido" Then
ActiveSheet.Unprotect "123"
Unload Me
UserForm2.Show
Else
MsgBox ("Clave inválida")
End If
End Sub
Private Sub UserForm_Activate()
TextBox2.SetFocus
End Sub
Private Sub UserForm_QueryClose _
(Cancel As Integer, CloseMode As Integer)
' Prevents use of the Close button
If CloseMode = vbFormControlMenu Then
MsgBox "Sin viveza.... use su Usuario y Clave"
Cancel = True
End If
End Sub

Para el UF2:
Private Sub CommandButton1_Click()
Dim Clave2
Clave2 = TextBox1.Value
If Clave2 = 1234 Then
Unload Me
Else
MsgBox ("Clave inválida")
End If
End Sub
Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub
Private Sub UserForm_QueryClose _
(Cancel As Integer, CloseMode As Integer)
' Previene usar el Botón de Cerrar
If CloseMode = vbFormControlMenu Then
MsgBox "Sin viveza.... use su Usuario y Clave"
Cancel = True
End If
End Sub

Para el Módulo:
Sub LaDesprotejo()
UserForm1.Show
'Unload Me
End Sub

Y para ThisWorkbook:
Private Sub Workbook_Open()
MsgBox ("Hola Kakashi, te saluda Richard Chacón") ' Muestra un saludo al abrir el libro
Worksheets("hoja1").Range("A1").Value = 1 'Genera un valor en una celda
ThisWorkbook.Application.CommandBars.FindControl(ID:=30029).Enabled = True
UserForm1.Show
End Sub

Recuerda crear y dar nombre al rango de Usuarios en la Hoja2
Asignar el nombre ElUsuario a una celda y ponerle esta fórmula:
=SI(ESERROR(BUSCARV(D1;Usuarios;1));"Invalido";BUSCARV(D1;Usuarios;1))
Asignarle a una Celda (D1) el nombre Clave1
Saludos,
RCh.
27/08/2008
kakashi0223, usuario preguntando en Microsoft Excel
Usuario
Hola ya le entendi, muchas gracias
Enlaces patrocinados