Problema con una macro y BUSCARV

10/08/2005 - 22:28 por Mk | Informe spam
Hola a todos!!

Después de intentarlo de varias maneras y mirar varios manuales que me
he bajado no consigo resolver un problemilla que tengo, a ver si podeis
echarme una mano.

Tengo una matriz con varias columnas (matriz A), he creado una macro que
efectua varios filtros y deseo que a esta matriz se le añada una nueva
columna como resultado de escribir la fórmula BUSCARV pero cuando
ejecuto la macro no ocurre nada, simplemente me pide que localice el
fichero de donde deseo cruzar los datos (matriz B) pero luego nada, ni
siquiera me da error..

El código que tengo es el siguiente;

Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-5],[Nombre_fichero_Matriz_B.xls]Data!B2:Z10000,14,0)"
Selection.FillDown

¿Alguna idea?

Muchas gracias

Mk

Preguntas similare

Leer las respuestas

#1 daniel_hg
11/08/2005 - 17:29 | Informe spam
Hola, yo nunca he usado BuscarV en VBA, pero en Excel, más de una vez he
solucionado problemas con esa función escribiendo el argumento booleano, con
sus palabras completas, es decir, VERDADERO ó FALSO.

Se me ocurre que podrías escribir False en la función para ver si
funciona.

Otra cosa. ¿ A las funciones de Hoja de Cálculo, para usarlas en VBA no
hay que llamarlas desde el objeto WorsheetFunction?
"Mk" escribió en el mensaje
news:
Hola a todos!!

Después de intentarlo de varias maneras y mirar varios manuales que me he
bajado no consigo resolver un problemilla que tengo, a ver si podeis
echarme una mano.

Tengo una matriz con varias columnas (matriz A), he creado una macro que
efectua varios filtros y deseo que a esta matriz se le añada una nueva
columna como resultado de escribir la fórmula BUSCARV pero cuando ejecuto
la macro no ocurre nada, simplemente me pide que localice el fichero de
donde deseo cruzar los datos (matriz B) pero luego nada, ni siquiera me da
error..

El código que tengo es el siguiente;

Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-5],[Nombre_fichero_Matriz_B.xls]Data!B2:Z10000,14,0)"
Selection.FillDown

¿Alguna idea?

Muchas gracias

Mk
Respuesta Responder a este mensaje
#2 KL
11/08/2005 - 23:16 | Informe spam
Hola Mk,

Esto me funciona (siempre y cuando el archivo Nombre_fichero_Matriz_B.xls
esta abierto):

Sub test()
Range("G2").FormulaR1C1 = _
"=VLOOKUP(RC[-5],[Nombre_fichero_Matriz_B.xls]Data!R2C2:R10000C26,14,0)"
End Sub

Si el archivo Nombre_fichero_Matriz_B.xls NO esta abierto, habra que indicar
la ruta completa, algo asi:

Sub test()
Range("G2").FormulaR1C1 = _
"=VLOOKUP(RC[-5],'D:\Work\[Nombre_fichero_Matriz_B.xls]Data'!R2C2:R10000C26,14,0)"
End Sub

Saludos,
KL


"Mk" wrote in message
news:
Hola a todos!!

Después de intentarlo de varias maneras y mirar varios manuales que me he
bajado no consigo resolver un problemilla que tengo, a ver si podeis
echarme una mano.

Tengo una matriz con varias columnas (matriz A), he creado una macro que
efectua varios filtros y deseo que a esta matriz se le añada una nueva
columna como resultado de escribir la fórmula BUSCARV pero cuando ejecuto
la macro no ocurre nada, simplemente me pide que localice el fichero de
donde deseo cruzar los datos (matriz B) pero luego nada, ni siquiera me da
error..

El código que tengo es el siguiente;

Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-5],[Nombre_fichero_Matriz_B.xls]Data!B2:Z10000,14,0)"
Selection.FillDown

¿Alguna idea?

Muchas gracias

Mk
Respuesta Responder a este mensaje
#3 Mk
14/08/2005 - 11:17 | Informe spam
He probado a escribir el argumento booleano pero no ha dado resultado,
sigo en el mismo punto.

He probado con el siguiente código pero tampoco me ha servido

Range("G3").Select
ActiveCell.FormulaR1C1 =
"=BUSCARV(B3;[GADD_Report1.xls]Data!$B$2:$Z$10000;14;FALSO)"
Selection.FillDown

Mis conocimientos de vb son muy limitados, voy a estudiar la propiedades
del objeto WorsheetFunction, probablemente ahí resida el fallo.

Muchas gracias por tu ayuda Daniel.

Lo seguiré intentando...
Respuesta Responder a este mensaje
#4 KL
14/08/2005 - 11:23 | Informe spam
Hola Mk,

Tu formula es incorrecta, mira mi respuesta del 11/8/05 (mas abajo).

Saludos,
KL


"Mk" wrote in message
news:42ff0c4e$
He probado a escribir el argumento booleano pero no ha dado resultado,
sigo en el mismo punto.

He probado con el siguiente código pero tampoco me ha servido

Range("G3").Select
ActiveCell.FormulaR1C1 =
"=BUSCARV(B3;[GADD_Report1.xls]Data!$B$2:$Z$10000;14;FALSO)"
Selection.FillDown

Mis conocimientos de vb son muy limitados, voy a estudiar la propiedades
del objeto WorsheetFunction, probablemente ahí resida el fallo.

Muchas gracias por tu ayuda Daniel.

Lo seguiré intentando...
Respuesta Responder a este mensaje
#5 Mk
14/08/2005 - 11:40 | Informe spam
He probado de las dos maneras y no hay forma, depurando el código no
aparece ningún error y la macro se ejecuta correctamente para el resto
de operaciones (filtrado, eliminación de columnas, formateado de
texto..etc) pero el mas importante que es el añadir esa columna mediante
la fórmula buscarv no funciona.

Como le comentaba a Daniel, mis conocimientos de vb son muy limitados.
Lo he intentado con el código siguiente:

Range("G2").FormulaR1C1 = _
"=BUSCARV(B3;[Matriz_B.xls]Data!$B$2:$Z$10000;14;FALSO)"

Evidentemente aquí si que me ha dado error en la depuración.

Voy a informarme sobre lo que me comentaba Daniel en el mensaje
anterior, el objeto WorsheetFunction.

Gracias por tu ayuda. Lo sigo intentado...
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida