Hola, tengo problema con VLOOKUP. Una aplicación en VBA para EXCEL. La búsqueda no es correcta
El código está así:
Private Sub txtNumFac_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim lngcad, lngcer, errnum As Integer
Dim ceros, cadena, encontró, error As String
cadena = "000000000"
lngcad = Len(txtNumFac.Value)
lngcer = 9 - lngcad
ceros = Left(cadena, lngcer)
txtNumFac.Value = ceros & txtNumFac.Value ' El número debe contener 9 dígitos
encontró = Application.WorksheetFunction.VLookup(txtNumFac.Value, Range("datos_factura"), 4) ' El Rango esta marcado para toda la hoja e incluye las celdas ocupadas
El problema: Si ingreso un valor que ya se ha registrado en la hoja activa de excel, En la caja de mensajes (MSGBOX) me lo indica, pero si no encuentra el valor, me lee la 4ta columna de la ultima linea con datos.
He tratado de evaluar el retorno de la variable "encontró" sin resultado.
Si tienen algo de tiempo, sobretodo por las fechas y saben como manejar este error, lo voy ha agradecer mucho.
Feliz 2014 pra todos, que sea abundante en éxitos y logros
Guillermo
¿Disculpen mi ignorancia pero me podrían explicar cual es la función del numero 4?Application.WorksheetFunction.VLookup(Val(txtNumFac.Value), Range("datos_factura"), 4, False)PORQUE esta el numero 4 escrito en la función - Leonardo Martínez
Hola Leonardo: el nro 4 es el número de columna a devolver. Si el rango 'datos_factura' empezara en col A te devolverá lo que contenga la col D. Sdos! - Elsa Matilde