Pregunta Comparar 2 TextBox en form Excel

  • viernes, 06 de abril de 2012 1:45
     
     

    Tengo este codigo en Excel 2010

    En este libro entro con passw pero en el mismo tengo otro form con 3 TextBox para cambio de passw

    Form de 3 TextBox

    Psw, passw actual

    TextBox 1, Nuevo passw

    TextBox2, Nuevo passw

    Resulta que al ingresar el nuevo passw no toma en cuenta el TextBox1, aunque lo deje vacio. Este el codigo

    'cambio de Contraseña
    Private Sub BotonOK_Click()
    ActiveSheet.Unprotect ""
    On Error Resume Next
    If UCase(Psw) <> UCase(Sheets("PASSWORD").TextBox) Then
    MsgBox "  Clave actual Incorrecta" & vbNewLine & "intente nuevamente", 64, "ERROR"
    End
    Else
    End If
    'xxxxxxxxxxxxxxxxxxxxxxx
    ''''''''''''''''''''''''
    COMPARAR ESTOS DOS TEXTBOX PARA QUE SEAN VALIDOS A LA HORA DE CAMBIAR EL PASSW
    ''If Me.TextBox1.Text = TextBox2.Value Then
    ''Me.TextBox1.Value
    ''MsgBox "Los nuevos password no coinciden" & vbCr & "Intentelo nuevamente", 64, "ERROR"
    ''Else
    ''End If
    ''''''''''''''''''''''''
    Sheets("PASSWORD").TextBox = TextBox2.Value
    ThisWorkbook.Save
    Unload Me
    ActiveSheet.Protect ""
    'xxxxxxxxxxxxxxxxxxxxxxx

    End Sub

    Si hace falta el libro, lo subire y dejare el enlca acá

Todas las respuestas

  • viernes, 13 de abril de 2012 10:28
     
     

    Tengo varias preguntas:

    1) ¿Por qué comparas la propiedad Text de TextBox1 con la propiedad Value de TextBox2? Aunque teóricamente las dos propiedades deberían tener el mismo valor, es preferible comparar la misma propiedad en ambos textboxes.

    2) ¿Dónde guardas el password? Supongo que en la hoja "PASSWORD" en un rango con nombre "Textbox". ¿Por qué le has puesto "Textbox"? ¿No sería más lógico llamarlo "Password"?

    3) ¿Por qué usas UCase para comparar los passwords? ¿Realmente te interesa que sean indiferentes a mayúsculas/minúsculas?

    4) ¿Por qué desproteges la hoja al comienzo del procedimiento? ¿No es más conveniente desprotegerla justo cuando vas a escribir el valor?

    5) ¿Por qué colocas ELSE después de cada IF, si no hay nada dentro del ELSE?


    logo osoft
    Si he contestado tu pregunta, por favor marca mi post como respuesta.
    ...Y si mi post te ha servido, márcalo como útil smile

    • Marcado como respuesta JoaoMM viernes, 13 de abril de 2012 18:34
    • Desmarcado como respuesta JoaoMM viernes, 13 de abril de 2012 18:34
    •  
  • viernes, 13 de abril de 2012 16:43
     
      Tiene código

    Agradecido por tu interes en ayudarme

    Creo que hice mal colocar todo el codigo El original es este solamente

    Form de 3 TextBox y un buton, este buton  es BotonOK

    1º- CREO,  que Ucase pertenece al TextBox psw que es donde tengo que escribir el passw actual y TextBox es el nombre del TextBox que esta en la celda B2 de la hoja PASSWORD, ESTE TIENE QUE SER EXACTAMENTE EL MISMO que se está usando. el actual es 123 para que me facilite hasta que corrija este detalle para el cual estoy pidiendo ayuda, mas tarde puede ser cualquier, con letras y numeros ect

    2º- ¿Por qué desproteges la hoja al comienzo del procedimiento? ¿No es más conveniente desprotegerla justo cuando vas a escribir el valor? TIENES RAZON PERO COPIE EL CODIGO YA ASÍ

    3º- EL CODIGO ENTRE '''''''''''' FUI YO QUE LO COLOQUE CREYENDO QUE PODIA HACER ALGO

    Psw, passw actual

    TextBox 1, Nuevo passw  (este tenerlo o no es lo mismo porque no lo toma en cuenta a la hopra del cambio de passw)

    TextBox2, Nuevo passw

    Resulta que al ingresar el nuevo passw no toma en cuenta el TextBox1, aunque lo deje vacio. Este el codigo

    'cambio de Contraseña
    Private Sub BotonOK_Click()
    ActiveSheet.Unprotect ""
    On Error Resume Next
    If UCase(Psw) <> UCase(Sheets("PASSWORD").TextBox) Then
    MsgBox "  Clave actual Incorrecta" & vbNewLine & "intente nuevamente", 64, "ERROR"
    End
    Else
    End If
    Sheets("PASSWORD").TextBox = TextBox2.Value
    ThisWorkbook.Save
    Unload Me
    ActiveSheet.Protect ""
    End Sub

    Lo que falta en este, foi que yo mismo lo agregue pensando tener la capacidad suficiente para (talvez) algo facil pero, no fue así, mi capacidad en programacion no existe, solo copie codigo y pegue

    Este funciona muy bien para cambio de passw, solo que, EL FORM tener o no el TextBox1, es igual, no lo toma en cuenta a la hora de hacer el cambio, si lo dejas vacio, es como no exista ese TextBox1.

    Lo que pretendo es que tome en cuenta el contenido de los 2 TextBox (1 y 2) a la hora de cambio de passw para que el contenido del TextBox1 sea el mismo del TextBox2. si en alguno de estos 2 hay diferencia, no hacer el cambio y mandar una adevertencia para repetir. El primer textoBox del form se llama psw la hoja donde se guarda el passw se llama PASSWORD y el TextBox donde se guarda el passw esta en la hoja PASSWORD en la celda B2 y se llama TextBox   (sin numero)

    Dejo enlace para bajar al libro 

    'http://www.mediafire.com/?3gyr84hzskyg2mj

    ¿donde y como marcar como util?
    • Editado JoaoMM viernes, 13 de abril de 2012 16:44
    • Editado JoaoMM viernes, 13 de abril de 2012 16:45
    • Editado JoaoMM viernes, 13 de abril de 2012 16:45
    • Editado JoaoMM viernes, 13 de abril de 2012 17:01
    • Editado JoaoMM viernes, 13 de abril de 2012 18:35
    •