Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

usar "buscarv" (o VLookup) en una macro

3,520 views
Skip to first unread message

Jorge

unread,
Jan 20, 2009, 11:27:02 AM1/20/09
to
En el siguiente ejemplo:

A B
1 Numero letra
2 4 D
3 2 B
4 3 C
5 1 A
6
7 3

Quiero hacer una macro que ponga en B7 la letra que corresponda al numero
que se indica en A7 buscandolo en la tabla A1:B5

Yo intenté con:


Sub Macro1()

Range("B7").Value = VLookup(A7, A1:B5, 2, FALSO)

End Sub


Pero me da error. Qué estoy haciendo mal?
Gracias por adelantado

Juan M

unread,
Jan 20, 2009, 11:40:57 AM1/20/09
to
"Jorge" escribió

Hola Jorge,

Cambia lo que has escrito por lo siguiente:

range("B7")=application.WorksheetFunction.VLookup(range("A7"),range("A2:B5"),2)

El error salta porque vlookup, no es ninguna función de vba o no has
definido ninguna función con ese nombre.

Para emplearla puedes hacer lo que te he indicado o escribirla en la celda,
pero no creo que esa sea tu intención, de todas formas te la paso también:

range("C7").Formula="=VLookup(" & range("A7") & " ,A2:B5,2)"

Un saludo,
Juan


Jorge

unread,
Jan 27, 2009, 9:28:01 PM1/27/09
to

"Juan M" escribió:

Muy agradecido Juan!!!, acabo de probar la macro y funciona correctamente de
cualquiera de las dos maneras en que me expusiste la solución.
El escribir la formula en la celda me va a servir para otras tareas que
quiero realizar.
Nuevamente SUPER agradecido.
Jorge

williamgarcia

unread,
Dec 22, 2009, 3:03:23 PM12/22/09
to
Buen dia utilizo muy frecuentemente buscarv, y quiero tener una formula personalizada ej =miformula(a3) me aplique busrcav(a3;='C:\Documents and Settings\ggarcia\Mis documentos\MAESTRA MATERIALES.xlsm'!MAESTRA;2;falso)

muchas gracias

William Garcia

Juan M wrote:

"Jorge" escribi?Hola Jorge,Cambia lo que has escrito por lo
20-Jan-09

"Jorge" escribi?

Hola Jorge,

Cambia lo que has escrito por lo siguiente:

range("B7")=application.WorksheetFunction.VLookup(range("A7"),range("A2:B5"),2)

El error salta porque vlookup, no es ninguna funci?n de vba o no has
definido ninguna funci?n con ese nombre.

Para emplearla puedes hacer lo que te he indicado o escribirla en la celda,

pero no creo que esa sea tu intenci?n, de todas formas te la paso tambi?n:

range("C7").Formula="=VLookup(" & range("A7") & " ,A2:B5,2)"

Un saludo,
Juan

Previous Posts In This Thread:

On Tuesday, January 20, 2009 11:27 AM
Jorg wrote:

usar "buscarv" (o VLookup) en una macro
En el siguiente ejemplo:

A B
1 Numero letra
2 4 D
3 2 B
4 3 C
5 1 A
6
7 3

Quiero hacer una macro que ponga en B7 la letra que corresponda al numero
que se indica en A7 buscandolo en la tabla A1:B5

Yo intent?? con:


Sub Macro1()

Range("B7").Value = VLookup(A7, A1:B5, 2, FALSO)

End Sub


Pero me da error. Qu?? estoy haciendo mal?
Gracias por adelantado

On Tuesday, January 20, 2009 11:40 AM
Juan M wrote:

"Jorge" escribi?Hola Jorge,Cambia lo que has escrito por lo
"Jorge" escribi?

Hola Jorge,

Cambia lo que has escrito por lo siguiente:

range("B7")=application.WorksheetFunction.VLookup(range("A7"),range("A2:B5"),2)

El error salta porque vlookup, no es ninguna funci?n de vba o no has
definido ninguna funci?n con ese nombre.

Para emplearla puedes hacer lo que te he indicado o escribirla en la celda,

pero no creo que esa sea tu intenci?n, de todas formas te la paso tambi?n:

range("C7").Formula="=VLookup(" & range("A7") & " ,A2:B5,2)"

Un saludo,
Juan

On Tuesday, January 27, 2009 9:28 PM
Jorg wrote:

Re: usar "buscarv" (o VLookup) en una macro
"Juan M" escribi??:

Muy agradecido Juan!!!, acabo de probar la macro y funciona correctamente de

cualquiera de las dos maneras en que me expusiste la soluci??n.


El escribir la formula en la celda me va a servir para otras tareas que
quiero realizar.
Nuevamente SUPER agradecido.
Jorge


Submitted via EggHeadCafe - Software Developer Portal of Choice
Build a Script-Only ASP.NET 2.0 Data Editing Page
http://www.eggheadcafe.com/tutorials/aspnet/274279bd-d101-4925-9857-246a66a85014/build-a-scriptonly-aspn.aspx

H�ctor Miguel

unread,
Dec 22, 2009, 10:55:22 PM12/22/09
to
hola, William !

> ... utilizo muy frecuentemente buscarv, y quiero tener una formula personalizada ej =miformula(a3)


> me aplique busrcav(a3;='C:\Documents and Settings\ggarcia\Mis documentos\MAESTRA MATERIALES.xlsm'!MAESTRA;2;falso)

la formula que expones hace suponer que "la funcion" debiera construir "la formula" (aun y) cuando el archivo de origen esta cerrado (?)
de ser asi, vba requiere de mas "pasos" para "leer" datos en libros cerrados, que la interfaz de excel con el usuario

una (posible) alternativa es usar un procedimiento Sub (NO Function) que se ejecute "a voluntad" (tu lo llamas cuando lo necesites)
y/o al que puedas asignar algun atajo de teclado (en las opciones que aparecen en el dialogo de las macros)

p.e. escribe "en la celda" donde necesites esta funcionalidad, la direccion/referencia al dato a buscar (segun tu ejemplo: a3)
y luego ejecutas una macro que puedes copiar/pegar (o escribir) en un modulo de codigo estandar en el editor de vba +/- asi:

Sub PonerFormula()
With ActiveCell
.Formula = "=vlookup(" & .Text & ",'c:\docmuents and settings\ggarcia\mis documentos\maestra materiales.xlsm'!maestra,2,0)"
End With
End Sub

saludos,
hector.


epca...@udlanet.ec

unread,
Jan 27, 2014, 1:26:33 PM1/27/14
to
quisiera saber como puedo hacer para seleccionar la celda encontrada. esto con macros.
0 new messages