Login que valide Usuario y Contraseña en VBA excel

Me gustaría hacer un formulario Login que valide Usuario y Contraseña en VBA para una Planilla de Excel para una pequeña base de datos que realice en excel... Si está en tus manos ayudarme te lo voy agradecer
Sdls
Jose Luis Palma

2 Respuestas

Respuesta
2
Estoy Un Poco Ocupadito... Te recomiendo visites mi sitio
www.expertosmacrosexcel.es.tl
Entra n el Concepto temario, busca el tema Formularios y hay esta como desarrollarlo, en caso de dudas me vuelves a escribir..
Realice los paso que comentas en tu página pero no me funcionó no se si fue que no supe hacer la macro o hay algo adicional que deba realizar. En cuanto puedas responder te lo voy a agradecer entiendo que esté ocupado
Slds.
Jose Luis Palma
Ok mita---
Primeramente
Vemos un Ejemplo:
En una hoja disponible de tu libro... para este ejemplo vamos a suponer que es la hoja2.
Vas a poner
Celda A1 = Nombre de Usuario
Celda B1 = Contraseña
Esos son los títulos donde tu vas a registrar tus datos de Usuario y Contraseña
ahora la celda a2 = User
en la celda b2 = 1234
Estos serán los datos de usuario y contraseña
tu usuario es User y la contraseña es 1234
A Continuación te vas a l editor de Visual Basic
Menu-Herramientas-Macros-Edistor de Visual Basic o, presiona Ctrl+F11
Inserta Un Modulo Nuevo
Inserta Un UserForm
Selecciona el UserForm, Presiona el botón derecho del Mouse y selecciona Propiedades
dentro de Propiedades busca la Propiedad Caption, en esa Propiedad ponle: Datos de Acceso, si te fijas en el User Form se pone como titulo Datos de Usuario
Ahora Bien:
En la barra de herramientas de tu editor, hay una herramienta que se llama caja de herramientas (Tools Box), Dale Click
de el Cuadrito de Herramientas que se activam Dale Click a la que tiene una A, sin siltar el botón delmause, arrastrala y suéltala en elarea de tu UserForm, Edítala y Ponle "Usuario"
Repite el proceso anterior, pega otra etiqueta y le pones el nombre de "Contraseña"
Hata aquí ya tienes la etiquetas en tu UserForm.
Ahora:
De la mima Caja de Herramientas selecciona la que tiene abl, dale Click y sin soltar el botón del mouse arrastrala y suéltala en el área del UserForm,
Repite el Proceso anteriores y pega otro TextBox,
Si te fojas ciando tu das clicken cualquier objeto se selecciona y tu lo puedes mover y ubicarloen el área que tu desees...
Bueno, después seleccionamos el segundo TexBox, presionamos el botón derecho del mouse y seleccionamos Propiedades.
Cuando se habré el cuadro de propiedades, buscamos una que se llama "PasswordChar", a esa propiedad le ponemos un "*"
Nota: esto es para que cuando tu escribas la cintraseña aparezcan arteriscos,
Hasta aquí ya tenemos el UserForm, Las Etiquetas. Y los Cuadros de Texto...
Ahora siguen los Botones de Aceptar y Cancelar.
Ahora, de la cajita de Texto Damos Click en el Botón, sin soltar el botón del mouse, arrastramos y soltamos en el área del UserForm, Damos Click Al botón que acabamos de insertary presionamos el botón derecho del mouse, seleccionamos propiedades, y en la Propiedad Caption, le ponemo "Aceptar".
Repetimos el Proceso anterior e insertamos otro botón, pero a este en la Propiedad Caption, le ponemos "Cancelar".
Hata Aqui ya tenemoslaparte Grafica del Poryecto... Ahora sigue la Programacion..
Para esto seleccionamos el Botón Aceptar, le presionamos el botón derecho del mouse, seleccionamos Ver Código, y cuando se habrá el campo para la edición ponemos nuestro Código siguiente.
Debe quedar así:
Private Sub CommandButton1_Click()
If UserForm1.TextBox1.Value = WorkSheets("Hoja2").Range("a2").Value and UserForm1.TextBox2.Value = WorkSheets("Hoja2").Range("b2").Value
' Nota: La instruccion anterios va en una sola linea pega la segunda despues de and
Sheets("hoja1").select
Unload Me
Else
Unload Me
ThisWorkBook. Close
End Sub
Hora Bien, en la parte izquierda de tu computadora donde dice UserForm1, dale Click, selecciona el botón de Cancelar, presiona el botón derecho del mouse, selecciona ver código, y ponle
Debe quedar así:
Private Sub CommandButton2_Click()
Unload Me
ThisWorkBook. Close
End Sub
Hasta aquí ya esta listo el UserForm de isentificacion..
Ahora para que el formulario aparezca cuando entramos al archivo hacemos lo siguiente:
Insertamos un Modulo con el menu insert
Cramos una macro AutoEjecutable, para que la misma macro nos autoejecute el UserForm cuando abrimos el libro..
Su nosotros del damos el de Auto_Open a una macro, esta se autoejecutara al abrir el libro,
entonces le ponemos en el modulo que insertamos le ponemos:
Sub Auto_Open()
UserForm1.Show
End Sub
Ahora ya creamos la macro, ya creamos el UserForm y sus Componentes, y ya registramos los Datos de Usuario y Contraseña, todo esta listo...
Nota importante: Tu libro debe de tener una hoja con el nombre de hoja1, y otra con el nombre de hoja2, porque a esas hojas hacen referencia el código del botón Aceptar---
Tu puedes cambiar los nombres, siempre y cuando también le cambies el nombre en el código...
Cierra y abre tu archivo...
Recuerda
El nombre de Usuario es usery lac ontraseña es 1234
También estos datos los puedes cambiar, si vas a la hoja2. Si le pones otro usuario y otra contraseña serán esos datos.
Ok hice todos los paso arriba mencionados pero en la linea
 If UserForm1.TextBox1.Value = WorkSheets("Hoja2").Range("a2").Value and UserForm1.TextBox2.Value = WorkSheets("Hoja2").Range("b2").Value............... da un error que dice error de copilación se esperaba: Then o Go To... soy nuevo en esta rama por eso me cuesta solucionarlo....
Ok... mira lo que pasa es que todo eso es una sola linea, perocomo no cupo en el cuadro de respuesta, se paso yformo dos linewas... por eso te mencione
Si te fijas son dos validaciosne, valida el nombre de osuarioy la contraseña, por esoen medio tiene un and (Y)
Antes y después del and va espaci hee para que no te confundas... y otras dos cosas, al final de esa linea lasga,,, le pones Then (Fin)
También se me olvido... de esa linea grande, te vas algunas lineas más para abajo y antes de la instrucción End Sub(Fin del Programa)
Le pones "End If" (Fin del If)
Quedara
End If
End Sub
Buen día
Sabes esas instrucciones que me estás dando yo lo hice ayer en la tarde después que te escribí pero ahora me da un nuevo error que dice "Se ha producido un error '13' en tiempo de ejecución : No coinciden los tiempos" y hasta allí si llegan mis conocimientos... me disculpas si te he molestado mucho. Sabes también me gustaría incluir en ese formulario números de intento osea que si la persona se equivoca 3 veces se cierre el libro... si es posible me avisas..
Que tengas un buen día
Jose Luis Palma
Ya arregle el error 13 en tiempo de ejecución era error mio pero cuando inserto el usuario y la clave lo que hace es cerrar el libro al darle aceptar. Estuve viendo las instrucciones del botón aceptar y tiene esta instrucción "Unload Me ThisWorkBook.Close" que es lo que me hace cerrar el libro se lo elimine y ya no me cierra el libro pero note que los usuarios y la clave no están haciendo efecto osea aunque no le meta el usuario igual me permite trabajar en el libro ... también si me puedes ayudar es con los intentos de clave, osea que si se equivoca tres veces se cierre el libro. Y una cosa más como hago para colocar varios usuarios... gracias por el formulario y gracias de antemano por lo nuevo que te estoy pidiendo
Ok mira...
Lo ok mira. Lo que hace cuando tu le das aceptar al formulario es, Validar si tanto el usuario como la contraseña que estas poniendo, son iguales a los que tienes registrados en la hoja2, de hay la importancia de que deben de estar el usuario en la celda a2 de la hoja2 y la contraseña en la celda b2 de la hoja2, porque es hay donde va y revisa y si los dos datos son iguales te deja entrar pero si uno de los dos son diferentes, te cierra el libro
Si te fijas en la instrucción del botón aceptar---
tiene in if
if WorkSheets("hoja2").Range("a2").Value = UserForm1.TextBox1.Value And  "La otra Validacion"  Then
Las Instrucciones si se cumplela condición, es decir, si son uguales Usuario y Contraseña, que cierre el Foumulario "UnLoad Me" (Descargame)
Unload Me
Else  (Entonces)
Las Instrucciones Si no corresponden el usuario o la contraseña, "Cierra este libro"
ThisWorkBook. Close (Cierra este Libro)
End If (Finaliza la condicion si (If))
End Sub  (Finaliza este Programita )
Por eso cuando le borraste la instrucción ThisWorkBook. Close, no te hace nada es decir, le estas indicando que si el usuario y la contraseña son uguales te deje entrar, pero que si son diferentes también te deje entrar... o sea si te los valida, pero te deja entra aunque sean errones...
la Instrucción Explicada en español esta así..
Private Sub CommandButton_Click()  (Cuando de Click en el boton 1 )
If Validacion de Usuario and Validacion de Contraseña Then  (Si Usuario y Contraseña   Fin)
Unload Me  (Son Iguales Solo desactivame el Formulario)
Else   (Entonces)
ThisWorkBook.Close  (Son Diferentes Cierrame este Libro )
End If  (Finalisame esta Condicion )
End sub (Finalizame este Porgrama)
Respuesta

Te muestro un video de como puedes realizarlo.

https://www.youtube.com/watch?v=BJUCgbtxtfs 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas