Tener en cuenta ceros a la izquierda al guardar texto con userform

Hola, dentro de un userform que guarda un dato en la columna A de una hoja tengo la siguiente instrucción que verifica si el dato que se intenta ingresar ya existe:

Set rango = Range("A:A").Find(What:=TextBox1, _
LookAt:=xlWhole, LookIn:=xlValues)

If Not rango Is Nothing Then
MsgBox "El registro se encuentra duplicado", vbOKOnly + vbInformation, "Alerta!"
TextBox1.SetFocus
Exit Sub
End If

La instrucción funciona bien, pero tengo un problema si al guardar un dato este tiene ceros adelante, por decir algo voy a ingresar un código "0032", y resulta que en la la columna A existe un código "00032" (es decir tiene un cero de mas adelante) y la instrucción me permite pasar, por ello quiero mejorar la instrucción para que valide si en la columna A existe previamente un código "32", es decir sin tener en cuenta los ceros adelante, y de ser así que no me permita guardar el registro.

Gracias de antemano.

1 respuesta

Respuesta
1

Te anexo una opción para que busque un texto idéntico, que es lo que ya tienes. Adicionalmente si no lo encuentra como text, ahora que lo busque como valor, pero esta búsqueda tendrá que hacerla registro por registro.

Private Sub CommandButton1_Click()
'Mod.Por.Dante.Amor
    Set rango = Range("A:A").Find(What:=TextBox1, LookAt:=xlWhole, LookIn:=xlValues)
    If Not rango Is Nothing Then
        MsgBox "El registro se encuentra duplicado", vbOKOnly + vbInformation, "Alerta!"
        TextBox1.SetFocus
        Exit Sub
    Else
        For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
            If Val(Cells(i, "A")) = Val(TextBox1) Then
                MsgBox "El registro se encuentra duplicado como valor", vbOKOnly + vbInformation, "Alerta de valor!"
                TextBox1.SetFocus
                Exit Sub
            End If
        Next
    End If
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas