Excel - Funcion personalizada con Vlookup

 
Vista:

Funcion personalizada con Vlookup

Publicado por Manuel Vega (8 intervenciones) el 30/03/2008 22:39:27
Buenos dias, que tal?

Quisiera que me ayuden con esto por favot porque voy horas pensandola y nada...

quiero crear una funcion personalizada tipo:

function buscador(valor,fila)

buscador=vlookup(valor,'hoja1!ranges("A1:B9"),fila,0)

end function

y cuando escribo la funcion en el worksheet me sale error diciendome que la macro no reconoce la funcion vlookup, como hacer para que la macro pueda reconocer la funcion vlookup dentro de mi funcion personalizada?

Muchisimas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion personalizada con Vlookup

Publicado por galileogali (107 intervenciones) el 31/03/2008 01:00:19
Si lo que das en el segunto argumento es Fila entonces se tratara de Hlookup, asi que

Function buscadorH(valor, fila)

buscadorH = Application.WorksheetFunction.HLookup(valor, Hoja1.Range("A1:B9"), fila, 0)

End Function

Function buscadorV(valor, columna)

buscadorH = Application.WorksheetFunction.HLookup(valor, Hoja1.Range("A1:J9"), columna, 0)

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Graciasss

Publicado por Manuel Vega (8 intervenciones) el 31/03/2008 03:29:21
Compañeroo... muchisimas gracias, no se me hubiera ocurrido colocar el scrpt "Application.WorksheetFunction" no se donde los programadores como ustedes aprenderan o como averiguaran a usar codigos como esos, a mi me encantaria aprender pero bueno.... te comento que usare esto pues, tenemos grandes registros que sobrepasan los 120000 registros, por lo que nuestros codigos de ordenes de compra, los hemos dividido en 6 archivos excel, entonces, nuestro informe consolidado usa una formula buscarv condicionada, que bueno... dice.. buscarv del archivo 1, si es N/A entonces busca el otro , y asi sucesivamente, resultando una formula de 1000 caracteres, por 50000 filas, no... el excel se vuelve peor que una tortuga, pensaba condicionar todo esto en un modulo, dentro de una funcion, pero como programador, nose si hacer esto, hara mas rapido el archivo, pues pienso... usaremos ahora una funcion sencilla que simplemente llamara a un algoritmo guardado en un modulo no? que sugerencia me das? pero gracias ahhhh de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bases de datos

Publicado por Galileogali (107 intervenciones) el 31/03/2008 04:03:17
Te recomiendo ver primero esto:

1)http://excelgali.mejorforo.net/tablas-dinamicas-f3/cruzar-dos-bases-de-datos-t56.htm#114

2) Ademas habria que pasara Excel 2007, donde tienes mas de 1.048.000 filas por hoja

o bien

3) Pasar la base a acces y trabajarla desde Excel, con algo parecido a 1)

o bien

4)crear una consulta en base a la UNION de las tablas de todos los archivos, pero no lo recomiendo

GALILEOGALI
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Bases de datos

Publicado por manuel vega (8 intervenciones) el 31/03/2008 16:14:54
Buena informacion galileogali, ya era hora de agregar mas registros al excel, a estas alturas con 64 mil y piko de registros no podrian hacerse muchas cosas...

te cuento lo que quiero hacer:

Function buscadorV(valor, columna)

buscadorV = Application.WorksheetFunction.VLookup(valor, windows(A4.xls)!Hoja1.Range("A1:B9"), columna, 0)

if buscadorV=vbnull then

buscadorV = Application.WorksheetFunction.VLookup(valor, windows(A5.xls)!Hoja1.Range("A1:B9"), columna, 0)

End Function

el problema es que, el archivo excel se encuentra en el disco C y al parecer no encuentra, quizas porque hay que especificarle la direccion excacta... C:/ blah blah blah, como indicarle la direccion completa en el vlookup?

otra cosa es que el vbnull no ayuda mucho, porque lo que quisiera es que si al buscar en el primer rchivo no encuentra el valor y que por concecuencia saldra "#¡VALOR!, entonces se haga un vlookup al otro archivo, y asi hacer una funcion personalizada que haga dos buscarv a fin de encontrar en uno de los dos archivos lo que yo le indique en el parametro valor

Seria interesante no? porque podria condicionar muchisimos buscarvs en una sola funcion personalizada...

Sera posible...? saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Bases de datos

Publicado por manuel vega (8 intervenciones) el 31/03/2008 17:45:02
Es mas, te cuento que quiero hacer funcioanr esto y no... no sale

pues quiero extraer informacion de un archivo excel que se encuentra en el directorio C... que extraño

Function buscadorV(valor, columna)

buscadorV = Application.WorksheetFunction.VLookup(valor, Workbooks("C:Libro1.xls").Hoja1.Range("A1:B9"), columna, 0)

End Function

Que sera?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar