UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Error en macro el 11/08/14, 01:17 pm

jhon1904


hola, amigos de excel

hice un formulario de ingreso al sistema, al comienzo me funicono correctamente, pero luego no volvio a funcionar y no logro ver el error que tiene

saludos

jhon borja
Archivos
Ingreso.xlsm
No tienes los permisos para descargar los archivos.
(25 KB)

2RESUELTO Re: Error en macro el 11/08/14, 05:22 pm

tyno


Hola Jhon.
Prueba de modificar el codigo de esta manera:

Private Sub CommandButton1_Click()
Dim usuario As String
Dim password As Variant
Dim DatoEncontrado



UsuarioExistente = Application.WorksheetFunction.CountIf(Hoja1.Range("a1:a1000"), U1)
Set Rango = Hoja1.Range("a1:a1000")
If U1 = "" Or C1 = "" Then

    Aviso.Caption = " !!! Digite el Usuario o La Contraseña ¡¡¡"
Aviso.Visible = True
    
    Me.U1.SetFocus
ElseIf UsuarioExistente = 0 Then
Aviso.Caption = "El usuario '" & U1 & "' no existe"
Aviso.Visible = True

   ElseIf UsuarioExistente = 1 Then
   
    DatoEncontrado = Rango.Find(What:=U1, MatchCase:=True).Row
    Contrasenia = Cells(DatoEncontrado, 1).Offset(0, 1).Value
    If Cells(DatoEncontrado, 1).Value = U1 And CStr(Contrasenia) = Cstr(C1) Then
        
       
       MsgBox (" La contraseña es correcta se cerrara el formulario")
        Unload Me
    Else
        MsgBox "La contraseña es inválida", vbExclamation, Blog
    End If
End If


End Sub

Creo que tenias dos errores: 

DatoEncontrado = Rango.Find(What:=U1, MatchCase:=True).Address

Esto te devuelve una referencia tipo $A$3, lo cual no es en si un problema sino cuando lo aplicas al objeto Range:   Contrasenia = Range(DatoEncontrado).Offset(0, 1).Value, o sea : Contrasenia = Range($A$3).Offset(0, 1).Value, lo cual no es valido.

Por otro lado a veces es necesario convertir los tipos de datos que se evalúan o comparan, porque puede ser que el dato de un textbox sea tipo string y el de la celda tipo integer. Repito, esto a veces es necesario, por ejemplo en la celda se encuentra el valor 123 y en el texbox nosotros tenemos el valor "123", el primero puede ser integer y el del textbox es string. Esto uno se da cuenta insertando un punto de interrupcion en la macro, y luego ver en las variables del codigo o en los nombres de los controles que tipo de valor tienen al posicionar el mouse sobre estos.

Saludos

3RESUELTO Re: Error en macro el 12/08/14, 01:57 am

jhon1904


hola, tyno

gracias por su aporte y conocimiento

saludos

jhon

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.