Formulas en ingles

13/08/2007 - 03:43 por Daniel Pozzi | Informe spam
Hola, uso esta línea de código para insertar una formula en una celda:

Cells(2, 8).FormulaLocal = "=BUSCAR(A2;Aux2!a:a;Aux2!b:b)"

Comparto esta planilla con un usuario q tiene excel y sistema operativo en
ingles, cada ves q modifico el programa debe modificar muchas formulas como
esta a su versón en ingles:
search(a2,Aux2!a:a,Aux2!b:b)"

Hay alguna manera de corregir esto? de hacer algo compatible?
 

Leer las respuestas

#1 Héctor Miguel
13/08/2007 - 04:13 | Informe spam
hola, Daniel !

... uso esta linea de codigo para insertar una formula en una celda:
Cells(2, 8).FormulaLocal = "=BUSCAR(A2;Aux2!a:a;Aux2!b:b)"
Comparto esta planilla con un usuario q tiene excel y sistema operativo en ingles
cada ves q modifico el programa debe modificar muchas formulas como esta a su verson en ingles:
search(a2,Aux2!a:a,Aux2!b:b)"
Hay alguna manera de corregir esto? de hacer algo compatible?



a) si quieres que por codigo se 'deposite' una formula con funciones de hojas de calculo en celdas, tienes [al menos] dos opciones:
a) usar la propiedad .Formula = "=aqui escribes la formula con las funciones EN ingles y la coma como separador de argumentos...'
b) usar la propiedad .FormulaLocal = "=aqui escribes la formula con las funciones EN el idioma donde se vaya a ejecutar tu macro Y...
-> conociendo [+/- exactamente] el separador de argumentos del excel donde se ejecute tu macro
-> ya sea por idioma o configuracion regional <= OJO
ejemplo con las funciones en ingles:
-> Range("c5").Formula = "=vlookup(b5,cliente,11,0)"
ejemplo con funciones en castellano y punto_y_coma como separador de argumentos:
-> Range("c5").FormulaLocal = "=buscarv(b5;cliente;11;0)"

c) o puedes usar la grabadora de macros, mientras escribes la formula 'a mano', y revisas despues el codigo que se ha generado :))

b) si lo que necesitas es 'usar' las funciones de excel desde vba para 'depositar' SOLO EL RESULTADO en celdas de hojas de calculo... -?-
[la propiedad WorksheetFunction te mostrara las funciones en ingles y como 'argumentos' deberas pasar los objetos 'completos'] ejemplo:
-> Range("c5") = Application.WorksheetFunction.VLookup(Range("b5"), Range("cliente"), 11, False)
o... si el rango 'cliente' [p.e. A5:AA358] se encuentra en una hoja distinta de la celda donde se depositara el rasultado...
-> Range("c5") = Application.WorksheetFunction.VLookup(Range("b5"), Worksheets("otra hoja").Range("cliente"), 11, False)

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

Preguntas similares