Error en buscarv

28/07/2006 - 01:23 por Daniel Pozzi | Informe spam
Hace un tiempo me comentaron el uso de ";" y "," como separador en esta
formula:

Range("e2").FormulaLocal =
"=SI(BUSCARV($C2;$C:$D;2;0)=$D2;BUSCARV($C2;$C:$D;2;1);
BUSCARV($C2;$C:$D;2;0))"

La misma funciona correctamente en una PC con sistema operativo en español
pero no lo hace en uno en ingles.
De q manera debo plantearla para q funcione en ambos?
Gracias

Daniel
 

Leer las respuestas

#1 Héctor Miguel
28/07/2006 - 06:24 | Informe spam
hola, Daniel !

Hace un tiempo me comentaron el uso de ";" y "," como separador en esta formula:
Range("e2").FormulaLocal = "=SI(BUSCARV($C2;$C:$D;2;0)=$D2;BUSCARV($C2;$C:$D;2;1); BUSCARV($C2;$C:$D;2;0))"
La misma funciona correctamente en una PC con sistema operativo en espa#ol pero no lo hace en uno en ingles.
De q manera debo plantearla para q funcione en ambos?



1) cuando usas la propiedad '.FormulaLocal' para 'depositar' [por vba] formulas en celdas [se supone/espera/... que]...
-> conoces exactamente el idioma de la aplicacion donde se esta ejecutando tu codigo -?-
asi como los convencionalismos o configuraciones regionales en cuanto a separadores [listas/argumentos/decimales/...]

2) para 'asegurarte' que tus macros 'depositan adecuada/correctamente' las formulas en la hoja [sin importar el idioma]...
-> deja de usar la propiedad '.FormulaLocal' y utiliza la propiedad '.Formula' [simple y llana] solo que...
necesitaras usar las funciones en ingles [con la ventaja de que] el separador de argumentos SIEMPRE sera la coma :))
-> excel se encarga de 'convertir' al idioma de la aplicacion donde se esta ejecutando el codigo
[excepto... si utilizas funciones del complemento 'herramientas para analisis' como fin.mes, etc.] <= OJO

prueba modificando la instruccion que usas a algo +/- como lo siguiente:
range("e2").formula = "=if(vlookup($c2,$c:$d,2,0)=$d2,vlookup($c2,$c:$d,2,1),vlookup($c2,$c:$d,2,0))"

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares