Saltar al contenido

Traductor de textos


agua

Recommended Posts

Hola,

buscando por el foro he encontrado la siguiente macro para traducir textos del inglés al español. La he introducido en un módulo de mi hoja excel y en la celda B2 de la HOja1 he introducido la fórmula:

=fnGoogTranslate(A1;"inglés";"español")

para que me traduzca el texto que introduzco en A1. El problema que tengo es que cuando escribo el texto en A1 y le doy a ENTER me aparece el siguiente mensaje:

424 Se requiere un objeto In Function: fnGoogTranslate

Y a continuación a veces me traduce el texto y otras no.

Mi pregunta es como hacer para que la macro me funcione bien y no me aparezca este error. Supongo que estoy haciendo algo mal pero no encunentro donde me estoy equivocando. También me gustaría saber como hacer para que me traduzca también del español al francés, ¿se podría utilizar la misma macro?

Google Translate by Internet Explorer Automation

A continuación pongo la macro en cuestion:


Public Function fnGoogTranslate(strData As String, strLangTo As String, strLangFrom As String, Optional UniCodeID As Long, Optional Timeout As Integer = 5) As String

Dim objGoog As Object
Dim strText As String
Dim waittime As Date
On Error GoTo Err_Handler

If strLangTo = strLangFrom Then
fnGoogTranslate = strData
Exit Function 'don't waste my time
End If

If strData <> "" Then

Set objGoog = CreateObject("InternetExplorer.Application")
objGoog.Navigate "http://translate.google.com/?sl=" & strLangTo & "&tl=" & strLangFrom & "#" & strLangFrom & "|" & strLangTo & "|" & strData
objGoog.Visible = False
'objGoog.Visible = True
waittime = Now + TimeValue("00:00:" & Timeout)

Do Until fnGoogTranslate <> ""
DoEvents
Do While objGoog.busy: Loop
fnGoogTranslate = objGoog.Document.all("result_box").innertext
If Now() >= waittime Then
'the function timed out
'default to the origial language
fnGoogTranslate = strData
Exit Do
End If
Loop

If UniCodeID <> 0 Then
fnGoogTranslate = StrConv(fnGoogTranslate, vbUnicode, UniCodeID)
End If

If fnGoogTranslate = "" Or fnGoogTranslate = strData Then
fnGoogTranslate = ""
End If

objGoog.Quit
Set objGoog = Nothing

End If


Exit Function

Err_Handler:
Select Case Err.Number
Case Else
MsgBox Err.Number & " " & Err.Description & " In Function: fnGoogTranslate"
Resume Next
End Select

End Function
[/PHP]

Gracias por todos y Saludos.

Enlace a comentario
Compartir con otras webs

Hola agua

Visita este tema leelo pero como ya sabras de no consultar (si has leido las normas sabras el porque), si tienes dudas o deseas adaptarlo a tu necesidad crea un tema nuevo

[DBOX]https://www.ayudaexcel.com/foro/ideas-aportes/18258-traducir-excel-mas-50-idiomas.html[/DBOX]

Saludos desde Honduras

Enlace a comentario
Compartir con otras webs

Hola agua

Visita este tema leelo pero como ya sabras de no consultar (si has leido las normas sabras el porque), si tienes dudas o deseas adaptarlo a tu necesidad crea un tema nuevo

[DBOX]https://www.ayudaexcel.com/foro/ideas-aportes/18258-traducir-excel-mas-50-idiomas.html[/DBOX]

Saludos desde Honduras

Que te parecio el enlace? al menos responde eso, o cerramos el tema?

Saludos

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.