Buscarv mediante codigo

20/10/2007 - 16:50 por Mauro Jesús | Informe spam
Alguno de ustedes sabe como puedo utilizar la funcion Buscarv mediante
código ?

Actualmente, mediante codigo (ciclo que va leyendo fila a fila y comparando
los valores de cada fila con un dato fijo) hago la busqueda de un elemento,
es decir, busco en la fila 1, col 1 un valor , una vez que lo encuentro, le
asigno a una variable el valor de la fila 1, columna 2 lo cual es muy
similar a lo que hace la funcion Buscarv si la utilizo en una celda, de ahi
la pregunta de como aplicar buscarv mediante codigo.

Saludos!

Mauro Jesús
 

Leer las respuestas

#1 Héctor Miguel
21/10/2007 - 00:23 | Informe spam
hola, Mauro !

... como puedo utilizar la funcion Buscarv mediante codigo ?
Actualmente, mediante codigo (ciclo que va leyendo fila a fila y comparando los valores de cada fila con un dato fijo)
hago la busqueda de un elemento, es decir, busco en la fila 1, col 1 un valor
una vez que lo encuentro le asigno a una variable el valor de la fila 1, columna 2
lo cual es muy similar a lo que hace la funcion Buscarv si la utilizo en una celda
de ahi la pregunta de como aplicar buscarv mediante codigo.



puedes usar las funciones de excel desde vba...
- la propiedad WorksheetFunction te mostrara las funciones (en ingles)
- como 'argumentos' deberas pasar los objetos completos (p.e.)

si suponemos que el dato que se busca esta en la celda 'B5' de la hoja activa
y que la matriz donde se busca esta en un rango con nombre (llamado clientes)
y que necesitas rescatar el dato correspondiente a la columna 11 (en el listado nombrado "clientes")
y que dicho listado NO esta ordenado...
y (finalmente) que la formula la estuvieras usando en la celda C5 de la hoja activa

lo que seria similar a usar una formula parecida a: =buscarv(b5,clientes,11,0)

-> Range("c5") = Application.WorksheetFunction.VLookup(Range("b5"), Range("clientes"), 11, False)

o... si el rango 'cliente' [p.e. A5:AA358] se encuentra en una hoja distinta de la celda donde se depositara el rasultado...
-> Range("c5") = Application.WorksheetFunction.VLookup(Range("b5"), Worksheets("otra hoja").Range("clientes"), 11, False)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector

Preguntas similares