Problemas con WorksheetFunction.HLookup

25/01/2005 - 19:10 por DF | Informe spam
Hola

Tengo una funcion personalizada en un modulo de excel.

Public Function DameValor(ByVal Codigo As String) As Double
VameValor = Application.WorksheetFunction.VLookup(Codigo,
ThisWorkbook.Worksheets("SOURCE").Range("C4:D11"), 2, falso)
End Function

la cual es identico a a utilizar en una celda la formula
=Buscarv(Codigo;el rango("C4:D11");Columna (2); Falso)

Si los datos que que estan en la hoja SOURCE, se actualizan, en el recalculo
el segundo metodo actualiza sin problema los valores. es decir, funciona
perfectamente.

Pero en el caso de utulizar la funcion VBA, los valores se quedan estaticos,
es decir, asume
lo valores iniciales cuando se edito la celda.

Si entro en el modulo para realizar alguna modificacion a la funcion,
(inserto un espacio y lo borro)
la siguiente actualizacion de los datos se realiza sin problema, por unica
vez, luego los datos
quedan desfazados entre la funcion Buscarv() y la funcion personalizada
Damevalor()

LA GRAN CONSULTA
¿como hacer para que se refresquen los datos de mi funcion personalizada.?

Saludos y de antemano muchas gracias.
Dick Fernández

Preguntas similare

Leer las respuestas

#1 Benito Merino
25/01/2005 - 21:23 | Informe spam
Hola DF.

En la ventana de proyecto, en microsoft excel objetos, en el correspondiente
a la hoja "RESOURCE", pega el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.Volatile
End Sub

Cuando haya una modificación en la hoja "RESOURCE" recalculará las fórmulas.

Saludos,


Benito
Barcelona




"DF" escribió:

Mostrar la cita
#2 DF
26/01/2005 - 05:19 | Informe spam
"Benito Merino" escribió en el mensaje
news:
Mostrar la cita
Hice lo anterior.

pero el problema continua igual.

Si se puede postear un binarios, te puedo enviar un ejemplo.

De todas maneras te explico lo que necesito.

Estoy trabajando con excel 2003 SP1
Menu: datos -> obtener datos externos -> Nueva consulta web
incorpora una tabla de alguna pagina en donde los datos vayan variando, como
por ejemplo la hora.

Luego desde una macro en excel, genera la funcion buscardato, en donde se
utilize el hlookup
y llama la funcion desde alguna celda

Asimismo, coloca en otra celda la formula tipica del BuscarV, que apunte al
mismo dato que va cambiando.

veras que a pesar de los recalculos, el valor de nuestra funcion no varia,
pero si lo hace la llamada directa del =BuscarV()

Me parece un error, bastante extraño, he revisado bastante documentación y
aun no encuentro la solución.

Muchas gracias por tu interes en ayudarme.

Saludos
Dick Fernández
Santiago - Chile
#3 Fernando Arroyo
26/01/2005 - 09:16 | Informe spam
A mí el siguiente código sí parece que me funciona:

Public Function LeerDato(ByVal Codigo As String) As Double
Application.Volatile
LeerDato = WorksheetFunction.VLookup(Codigo, ThisWorkbook.Worksheets("DATOS").Range("A1:B4"), 2, False)
End Function

Un saludo.


Fernando Arroyo
MS MVP - Excel



"DF" <dfernandez @ valymon.cl> escribió en el mensaje news:%
Mostrar la cita
#4 DF
27/01/2005 - 01:45 | Informe spam
Fernando

Muchas gracias, es justo lo que necesitaba.

Public Function LeerDato(ByVal Codigo As String) As Double
Application.Volatile
LeerDato = WorksheetFunction.VLookup(Codigo,
ThisWorkbook.Worksheets("DATOS").Range("A1:B4"), 2, False)
End Function

Un saludo.


Fernando Arroyo
MS MVP - Excel


Saludos
Dick Fernández
Santiago - Chile
#5 DF
28/01/2005 - 03:04 | Informe spam
"Fernando Arroyo" escribió en el mensaje
news:
A mí el siguiente código sí parece que me funciona:

Public Function LeerDato(ByVal Codigo As String) As Double
Application.Volatile
LeerDato = WorksheetFunction.VLookup(Codigo,
ThisWorkbook.Worksheets("DATOS").Range("A1:B4"), 2, False)
End Function

Un saludo.


Fernando Arroyo
MS MVP - Excel


Muchas gracias por la respuesta, pero solo funciona con archivos XLS, si lo
convierto a XLA los datos no se refrescan y continuan estaticos. Agrego un
nuevo post al foro Actualización de datos en un complemento Excel *.XLA
Saludos
Dick Fernandez
Santiago - Chile
Ads by Google
Search Busqueda sugerida