macro de usuario y contraseña
DESCRIPTION
MACRO DE USUARIO Y CONTRASEÑA EN EXCELTRANSCRIPT
Macro de usuario y contraseñaNecesito un favorsote.Lo que pasa es que quiero una macro donde al introducir su nombre de usuario y contraseña les de acceso al libro de excel.Me gustaría que esta ontraseñas estuvieran en una hoja de excel y saber cuando entro uno de ellos.¿Se puede?Seguir Responder Más infoCompartir
2 respuestasRespuesta de patanrisitas1
patanrisitas, Tengo experiencia en macros, funciones avanzadas y algo de...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- Allí copias el siguiente código:Private Sub Workbook_Open()MsgBox ("Hola Kakashi, te saluda Richard Chacón") ' Muestra un saludo al abrir el libroWorksheets("hoja1").Range("A1").Value = 1 'Genera un valor en una celda al abrirApplication.CommandBars.FindControl(ID:=30029).Enabled = True 'Inhabilita Desproteger'Para que funcione, se debe cambiar el True por FalseUserForm1.Show ' Muestra el User Form para solicitar Usuario y ClaveEnd 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, UsuarioClave2 = TextBox1.ValueRange("Clave2") = Clave1Usuario = Range("ElUsuario").ValueIf Usuario <> "Invalido" Then
ActiveSheet.Unprotect "123"Unload MeElseMsgBox ("Clave inválida")End IfEnd Sub-Luego creas el 2do UserForm al que le asignas otro TextBox y un Botón de Aceptar con el siguiente código:Private Sub CommandButton1_Click()Dim ClaveClave = TextBox2.ValueIf Clave = 1234 ThenUnload MeUserForm1.ShowElseMsgBox ("Clave inválida")End IfEnd 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 RCORRALESPrueba con esto y me avisas..Saludos,RCh.
el 22 ago. 08
Hola, Gracias por tu ayuda.Solo una duda, lo que pasa es que 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, ¿ahí qué se captura lo de rango (a1)?.Gracias y saludos
el 25 ago. 08
Q+ Kaka,Creo que mejor te mando un ejemplo... dame un [email protected]
Acá tienes de todos modos los códigos para el UF1:Private Sub CommandButton1_Click()Dim Clave1, UsuarioClave1 = TextBox2.ValueRange("Clave1") = Clave1Usuario = Range("ElUsuario").ValueIf Usuario <> "Invalido" ThenActiveSheet.Unprotect "123"Unload MeUserForm2.ShowElseMsgBox ("Clave inválida")End IfEnd SubPrivate Sub UserForm_Activate()TextBox2.SetFocusEnd SubPrivate Sub UserForm_QueryClose _(Cancel As Integer, CloseMode As Integer)' Prevents use of the Close buttonIf CloseMode = vbFormControlMenu ThenMsgBox "Sin viveza.... use su Usuario y Clave"Cancel = TrueEnd IfEnd SubPara el UF2:Private Sub CommandButton1_Click()Dim Clave2Clave2 = TextBox1.ValueIf Clave2 = 1234 ThenUnload MeElseMsgBox ("Clave inválida")End IfEnd SubPrivate Sub UserForm_Activate()TextBox1.SetFocusEnd SubPrivate Sub UserForm_QueryClose _(Cancel As Integer, CloseMode As Integer)' Previene usar el Botón de CerrarIf CloseMode = vbFormControlMenu ThenMsgBox "Sin viveza.... use su Usuario y Clave"
Cancel = TrueEnd IfEnd SubPara el Módulo:Sub LaDesprotejo()UserForm1.Show'Unload MeEnd Sub
Y para ThisWorkbook:Private Sub Workbook_Open()MsgBox ("Hola Kakashi, te saluda Richard Chacón") ' Muestra un saludo al abrir el libroWorksheets("hoja1").Range("A1").Value = 1 'Genera un valor en una celdaThisWorkbook.Application.CommandBars.FindControl(ID:=30029).Enabled = TrueUserForm1.ShowEnd SubRecuerda crear y dar nombre al rango de Usuarios en la Hoja2Asignar 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
el 26 ago. 08 Votar 1 ComentarCompartir
Añadir comentarioRespuesta de jerryeagle1
jerryeaglePara que funciones, debes tener una hoja llamada "Usuarios", un userform1, dos textbox llamados user y pass dos botones, Ok y Cierra y pegar este código en userform:'En el evento Workbook_open de Thisworkbook debes poner este codigouserform1.showPrivate Sub Cierra_Click()If MsgBox("Salir de Excel?", vbYesNo) = vbYes Then Application.Quit Unload Me Else Unload Me
End IfEnd SubPrivate Sub Ok_Click()Application.ScreenUpdating = FalseSheets("Usuarios").Visible = TrueSheets("Usuarios").SelectRange("A2", Range("A65536").End(xlUp)).SelectIf Selection.Find(User.Text, , , xlWhole) Is Nothing Then GoTo NoEncontrado Else Selection.Find(User.Text, , , xlWhole).Select'MsgBox User & " - " & PassIf ActiveCell.Value = User And ActiveCell.Offset(0, 1).Value = Pass Then MsgBox "Bienvenido " & User Unload UserForm1' Pone en la barra de Excel de arriba el nombre del Usuario que entróApplication.Caption = User ElseNoEncontrado: MsgBox "Nombre de Usuario o Contraseña Incorrecta, Verifique el uso correcto de Mayusculas y Minusculas" User = Empty Pass = Empty User.SetFocus Sheets("acceso").SelectEnd IfEnd IfApplication.ScreenUpdating = TrueEnd SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'Prevent user from closing with the Close box in the title bar. Cancel = False If CloseMode <> 1 Then Cancel = True UserForm1.Caption = "Debe usar el boton Cerrar del Formulario"End SubCualquier duda me dices.
el 23 ago. 08
Hola de nuevo.Ya lo corrí y me sale un problemita, si se ve en cuanto abro el archivo, pero a la hora de que le doy al botón para que me de el acceso al archivo se queda plasmado y no me deja modificarlo.
¿ise algo mal?Gracias y saludos.
el 25 ago. 08
Tal vez no pusiste esto:<span style="border-collapse: collapse; color: #4a4a4a; font-family: Arial; line-height: 17px;">Application.ScreenUpdating = True </span>Es para regresar a la normalidad la "vista" de los movimientos a la hoja de calculo, o mandame tu archivo para [email protected]