Cómo buscar números con VLookup

Necesito saber cual es el código para buscar un número específico dentro de un rango con la función VLookUp o con cualquier otra, pues dicha función sólo me está sirviendo para buscar palabras.

2 respuestas

Respuesta
2

No entiendo, porque la función vlookup sirve tanto para números como para palabras.

Escribe tu instrucción para que veamos si tienes alguna falla en algún lado.

En mi columna A tengo un número y quiero que me devuelva el valor asociado de la columna B

Private Sub CommandButton1_Click()
valor = TextBox1
prueba = Application.VLookup(valor, Range("A:B"), 2, 0)
TextBox1.Value = prueba
End Sub

Ok, la instrucción funciona, el problema es que el TextBox se guarda como texto y no como número. Haz el siguiente reemplazo

Private Sub CommandButton1_Click()
valor = Val(TextBox1)
prueba = Application.VLookup(valor, Range("A:B"), 2, 0)
TextBox1.Value = prueba
End Sub
Respuesta
2

Si el número que vas a buscar lo estás obteniendo de un textbox o de un combobox, entonces tienes que convertirlo a valor, porque en el textbox o en el combobox se ha almacenado como texto.

Utiliza lo siguiente por ejemplo

    res =  Application.VLookup(Val(ComboBox1),  Sheets("Clientes").Range("C:D"), 2, False)
    If IsError(res) = True Then
        ' No lo encontró
        MsgBox "no encontrado"
    Else
        ' Existe
        MsgBox "Si existe"
    End If

Saludos.Dante Amor

Si es lo que necesitas.

Excelente, muchas gracias Dante

Tengo un nuevo problema relacionado a esto, los numeros que el VLookup debe de buscar no sé qué formato tienen pues no me los encuentra (ya problé que si yo ingreso manualmente el número a la celda sí me lo encuentra, de hecho cuando hago eso los números se alinean a la derecha de la celda) pero el caso es que ese número lo estoy ingresando desde la programación y los números se me alinean a la izquierda de la celda. La linea donde introduzco el número a la celda sería esta:

Cells(ActiveCell.Row, "B") = TextBox1

como dije antes al valor del TextBox1 no le estoy dando un formato especifico.

Muchas Gracias de antemano

Puede ser así

if isnumeric(textbox) then

    Cells(ActiveCell.Row, "B") = val(TextBox1)

else

   Cells(ActiveCell.Row, "B") = TextBox1

Endif

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas