Crear fórmulas Excel con macros independientemente del idioma o separador de argumentos, coma o punto y coma

Cuando queremos insertar fórmulas en Excel mediante macros, nos encontramos con 2 disyuntivas:

  1. Usar el nombre de la función mdiante lenguaje vba, es decir, su parte en inglés que sea compatible con cualquier Excel en cualquier idioma.
  2. Escribir la fórmula en nuestro propio lenguaje, cual sea que este fuera, adecuando el separador de argumentos: coma (,) o punto y coma(;), pero sólo compatible con otro Excel en nuestro idioma

Insertar fórmulas mediante vba aplicables a Excel en cualquier idioma

Supongamos que necesitamos insertar en una celda la función BUSCARV desde vba. Si esta macro se utilizará en otras versiones de Excel con diferentes idiomas al que usamos, lo mejor será usar los nombres en inglés.

Desde vba usamos la propiedad FORMULA del objeto RANGE:

Range("F6").Formula = "=VLOOKUP(E6,A1:B12,2,0)"

Ver video Insertar fórmulas con VBA independientemente del idioma o separador de argumentos

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Insertar fórmulas mediante vba aplicables a nuestro idioma

La misma función BUSCARV la deseamos escribir desde vba en nuestro mismo idioma. Para eso debemos hace uso de la propiedad FORMULALOCAL del objeto RANGE.

Range("F6").FormulaLocal = "=BUSCARV(E6,A1:B12,2,0)"

El caso del separador de argumentos cuando es coma o punto y coma

El separador de listas o argumentos varía dependiendo de la configuración regional de nuestro sistema. Por ejemplo, es coma cuando la cofiguración es el Español y punyo y coma cuando la configuración en el inglés. Pero como no nos interesa escribir fórmulas para cada tipo de región, mejor hacemos uso de la propiedad INTERNATIONAL del objecto APPLICATION, para meter a una variable el separador que nos detecte Excel.

Para obtener el separador de argumentos configurado en el Panel de control usamos la siguiente instrucción:

Application.International(xlListSeparator)

Y si dejamos el separador como variable, las instruccones quedarían así:

'Para fórmula multi idioma
Separador = "," 'Este separador es constante
Range("F6").Formula = "=VLOOKUP(E6" & Separador & "A1:B12" & Separador & _
    "2" & Separador & "0)"
'Para fórmula en nuestro idioma
'Obtener el separador de argumentos
Separador = Application.International(xlListSeparator)
Range("F6").FormulaLocal = "=BUSCARV(E6" & Separador & "A1:B12" & Separador & _ "2" & Separador & "0)"
'Con idioma Español - España, el separador local es ";", 
'mientras que el internacional es SIEMPRE la coma ",". 

You may also like...

8 Responses

  1. raulpema says:

    Muchas gracias por la explicacion del separador tube muchos problemas en mis macros, con esto espero solucionarlos.
    9omo siempre te agradesco el compartir tus conocimientos, me son de gran utilidad.

  2. Javier says:

    Creo que falta una importante nota. En tu caso coinciden los separadores (internacional y local), ya que ambos son “,”. Pero este no es siempre el caso. Creo que sería más propio indicar:

    'Para fórmula multi idioma
    Separador = "," ' Esto es una constante
    Range("F6").Formula = "=VLOOKUP(E6" & Separador & "A1:B12" & Separador & _
    "2" & Separador & "0)"

    'Obtener el separador de argumentos LOCAL
    Separador = Application.International(xlListSeparator)
    'Para fórmula en nuestro idioma
    Range("F6").FormulaLocal = "=BUSCARV(E6" & Separador & "A1:B12" & Separador & _
    "2" & Separador & "0)"

    Con idioma Español - España, el separador local es ";", mientras que el internacional es SIEMPRE la coma ",".

  3. L. Fernando Fuentes says:

    y como se puede colocar los signos de =, adentro de una formula ?l

  4. L. Fernando Fuentes says:

    y como se puede colocar los signos de =, adentro de una formula ?l

  5. Edy Armando says:

    como usar el contenido de una celda y multiplicarla, sumarla o restarla con un numeros. ejem. Range (“G6″).FormulaLocal=”Suma (G5),(G5*7/100)”

  1. November 12, 2012

    […] Crear fórmulas Excel con macros independientemente del idioma o separador de argumentos, coma o pun… […]

Leave a Reply

Your email address will not be published.

%d bloggers like this: