FUNCIÓN PARA TRADUCIR TEXTO EN NUESTRA HOJA EXCEL

Hola a todos:

Hace unos días estaba trabajando con unos textos en inglés, nada relacionado con Excel, sino con unos apuntes de teoría política que me interesaban bastante. Lo cierto es que tuve que recurrir varias veces al traductor de Google, dado que no recordaba el significado concreto de algunas expresiones.

Esto me dio una idea, ¿por qué no confeccionar una función que se sea capaz traducir el valor que contenga una celda en Excel, algo así como “TraducirV”?, pues claro que sí, y es bastante sencillo.

Para hacer nuestro trabajo, vamos a utilizar la siguiente función que obtiene del traductor de google la traducción de la palabra que queremos traducir:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Function TRADUCIRV(ByVal palabra As String, input_word As String, output_word As String)
'Declaramos variables
Dim RESPUESTA As String
Dim ie As Object
'Creamos aplicación (internet explorer)
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate ("http://translate.google.com/?") & "hl=es#" & input_word & "/" & output_word & "/" & palabra
'vamos a ralentizar la macro varios segundos
For i = 1 To 6
Sleep 500
Next i
'Obtenemos la traducción, extrayendo el texto por ID
RESPUESTA = ie.Document.getElementById("result_box").innerText
TRADUCIRV = RESPUESTA
ie.Quit
End Function

Con esto ya tenemos en nuestro libro Excel una nueva función, denominada “TRADUCIRV” 🙂

la sintaxis de la función es la siguiente:

=traducirv(texto a traducir;idioma actual;idioma al que queremos traducir)

Por ejemplo, si queremos traducir del español (“es”) al inglés (“en”), esta sería la fórmula:

=traducirv(A2;"es";"en")

Y podemos traducir cualquier texto a cualquier de los idiomas que aparecen en el tractor de Google, por ejemplo, si traducimos “nadie sabe de lo que es capaz hasta que lo intenta” al georgiano (“ka”), la fórmula sería =traducirv(A2;”es”;”ka”) y el resultado sería este: არავინ იცის, რა მას შეუძლია, სანამ ის ცდილობს

funcion-para-traducir-texto-en-nuestra-hoja-excel

En al archivo os dejo los nombres y las abreviaturas de los idiomas del traductor de google, por si queréis probar algunos idiomas.

En la función, cuando hagáis referencia a los idiomas, debéis colocar las abreviaturas en minúsculas y entre comillas dobles, de lo contrario obtendréis un error. (En la función también podéis hacer referencia a la celda que contiene la abreviatura y no tener que escribirla, en ese caso irá sin comillas.)

Otro asunto importante es que algunos idiomas, dependiendo de la versión de Excel  puede que no se muestren correctamente, por ejemplo, el Birmano, en excel 2010 no se muestra, sin embargo en Excel 2016 sí. De hecho, es en 2016 donde se muestran todos los idiomas correctamente.

Pues esto ha sido todo, una pequeña función para poder traducir desde nuestra hoja Éxcel un texto a multitud de idiomas.

Descarga el archivo de ejemplo pulsando en: FUNCIÓN PARA TRADUCIR TEXTO EN NUESTRA HOJA EXCEL

 

Anuncios

19 pensamientos en “FUNCIÓN PARA TRADUCIR TEXTO EN NUESTRA HOJA EXCEL

  1. hola, es genial me esta ayudndo mucho tu funcion pues tengo bastantes cosas que traducir en excel, lo que si suele dar fallos y ser bastante lenta incluso cuando tiene muchas celdas que traducir se bloquea excel y se cierra perdiendo todo lo hecho que no se haya guardado… habria alguna mejora o cmabio que se puediera hacer en la formula para que mejore su funcionamiento??, perdona por mi ignorancia pero soy muy novato en esto… ante todo muchas gracias por facilitarme la vida…

    Me gusta

    • Hola Migue:

      Sé que a veces esa función puede dar problemas, se debe al tiempo de respuesta entre que se hace la petición de información y el dato que envía google translate (tiene difícil solución).

      Investigaré de todas formas si existe un API que no sea de pago al que poder solicitar estos datos.

      Saludos.

      Me gusta

  2. Hola Segu. Tengo una dificultad que no entiendo, seguramente será por que no tengo sólidas bases de Excel. Me he bajado tu excel y en la hoja en la que está la fórmula funciona sin problemas. Pero no funciona si se trata de utilizar desde otra hoja. Da un error de referencia. Si creo la función en otro archivo tengo el mismo problema. ¿Sabes porque puede ser?
    Gracias de antemano,
    jorge

    Me gusta

    • Hola Jorge:
      La función funciona debería funcionar correctamente en el mismo archivo y sus hojas. Pero en otro archivo es necesario que tenga un módulo de VBA con la función.

      Descartando eso, debería funcionar correctamente.

      Saludos.

      Me gusta

      • Hola Segu,
        Encontré el problema. Como te decía era un problema de principiante. La cuestión es que yo tengo el ordenador configuradon en idioma inglés con formato de número de Irlanda. Y con esta configuración donde se usa en excel en castellano . yo uso , y cuando se usa en las fórmulas ; yo uso ,
        Así que mi formula es con comas. Eso era todo.
        Gracias,
        Jorge

        Me gusta

    • Es posible , pero no lo puedo verificar. Además actualmente existe un API para traducir pero de pago en Google, el problema es que no se pueden bajar los datos en XML o Json utilizando otro método mucho más rápido y el acudir a I. Explorer ocasiona fallos en la descarga de los datos (tiempo de respuesta, fundamentalmente).

      Saludos.

      Me gusta

  3. hola Segu, mi nombre es David, estoy utilizando tu funcion y es de mucha utilidad.. pero he tenido un inconveninte, y es que yo la utilizo para traducir textos con Porcentajes, por ejemplo “100% Algodon” o “90% Algodon 10% Poliester”, pero al momento de poner el simbolo de porcentaje, no aparece la traduccion, ni si quiera el texto.

    crees que me puedes ayudar para solocionar el problema?
    o si alguien de los que la estan usando tiene la respuesta me pueden ayudar?

    por favor!

    gracias! 🙂

    Me gusta

    • Hola David:

      Creo que el % crea problemas a la hora de enviar la solicitud al traductor.

      Una solución sencilla es utilizar el remplazar para cambiar el % por ” por ciento”.

      La forma de hacerlo es cambiar incluir el replace en la macro, en la parte de la url:

      ie.navigate ("http://translate.google.com/?") & "hl=es#" & input_word & "/" & output_word & "/" & Replace(palabra, "%", " por ciento")

      Así te funcionará. Saludos.

      Me gusta

  4. Hola, no he trabajado con macros, pero al pegar el código me arroja una ventana de error que dice: “only comments may appear after End Sub, End Function, or End Property. Y al mismo tiempo me subrralla la primera línea:

    Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)

    Por qué será esto?

    Me gusta

    • Hola Nat:

      En el archivo de descarga te funciona correctamente?. si lo hace, es muy probable que hayas pegado la información de forma incorrecta. Revísalo y me comentas.

      Saludos.

      Me gusta

¿Te ha gustado?, Realiza un comentario.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.