Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Anbinden Google Übersetzer an Excel

VBA Anbinden Google Übersetzer an Excel
19.02.2019 22:33:35
Robert
Hallo zusammen.
Ich bin neu hier und möchte gerne mein Problem auf diesem Weg schildern:
Es geht um die Anbindung des Google-Übersetzers in Excel via VBA. Im Grunde durchlaufe ich eine Schleife in Spalte A und möchte über eine Funktion die Übersetzung mit Google in Spalte B ausgeben. Das ganze geht soweit gut, bis zum Zeitpunkt der Datenübertragung von der Ergebnisbox Google nach Excel Spalte B. Hier bekomme ich nur einen leeren String. Ich verstehe nicht, wieso ich den übersetzten Inhalt nicht mit "Uebersetzung = objIE.Document.getElementById("result_box").innerText" kriegen kann!?
Weiß jemand hier weiter? Sperrt Google diese Anwendung intern?
Public Function Uebersetzung(strQuelle As String, strZiel As String, strText As String) As  _
String
Dim objIE As Object
Dim timeOut As Date
On Error Resume Next
Set objIE = CreateObject("InternetExplorer.Application")
objIE.navigate "http://translate.google.com/?#" & strQuelle & "/" & strZiel & "/" & Replace( _
strText, " ", "%20")
timeOut = Now + TimeValue("00:00:05")
Do
Uebersetzung = objIE.Document.getElementById("result_box").innerText
If Now >= timeOut Then Exit Do
Loop While Uebersetzung = ""
objIE.Quite
Set objIE = Nothing
On Error GoTo 0
End Function

Sub Translate()
Dim i As Integer, anzRows As Integer
Dim strQuelle As String, strZiel As String, strText As String, TranslateText As String
anzRows = ActiveWorkbook.ActiveSheet.Range("A1").CurrentRegion.Rows.Count
strZiel = "EN"
strQuelle = "DE"
For i = 1 To anzRows
strText = ActiveWorkbook.ActiveSheet.Range("A" & i).Value
ActiveWorkbook.ActiveSheet.Range("B" & i) = Uebersetzung(strQuelle, strZiel, strText)
Next
End Sub
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Anbinden Google Übersetzer an Excel
20.02.2019 07:03:42
MCO
Guten Morgen, Robert!
Mit

objIE.Visible = True
hab ich den Browser sichtbar gemacht, und leider keine Ergebnis im Google-Übersetzer erhalten.
Ich verwende deepl.com. Die Übersetzung ist deutlich besser.
Leider hab ich aber auch hier keine Lösung für den Abgriff der Daten gefunden. Ich denke, es liegt an der Struktur der Seite, das eben nicht alles nur html ist sondern noch mit JAVA-Script verknüft oder so. Kenn mich in web-seiten schreiben nicht aus...
Gruß, MCO
Anzeige
AW: VBA Anbinden Google Übersetzer an Excel
20.02.2019 17:11:04
Robert
Hallo MCO,
vielen Dank für deine Antwort.
Deepl.com hatte ich ursprünglich im Code. Hab auch selbiges festgestellt und dachte, dass man auf dieser Seite die Textbox für das Ergebnis anders wie bei Google ansprechen muss. Was mir nicht bekannt ist, wie. Aber da es auch bei Google nicht funktioniert, bin ich mir nicht sicher, liegt es immer noch am Code oder ist das Abholen der Information auf den Web-Seiten gesperrt?
Oh, mann...
Wen könnte ich noch fragen, um hier zum Ziel zu kommen?
Anzeige
AW: VBA Anbinden Google Übersetzer an Excel
20.02.2019 18:41:51
Sepp
Hallo Robert,
Modul Modul2
Option Explicit 
 
 
Sub testTranslate() 
  Debug.Print Uebersetzung("en", "de", "winter is coming") 
End Sub 
 
Public Function Uebersetzung(strQuelle As String, strZiel As String, strText As String) As String 
  Dim objIE As Object 
  Dim timeOut As Date 
   
  Const CLASSNAME As String = "lmt__textarea lmt__target_textarea lmt__textarea_base_style" 
   
  On Error Resume Next 
   
  Set objIE = CreateObject("InternetExplorer.Application") 
 
  objIE.navigate "https://www.deepl.com/translator#" & strQuelle & "/" & strZiel & "/" & Replace(strText, " ", "%20") 
  timeOut = Now + TimeValue("00:00:05") 
   
  Do 
    Uebersetzung = objIE.Document.getElementsByClassName(CLASSNAME)(0).innerText 
    If Now >= timeOut Then Exit Do 
  Loop While Uebersetzung = "" 
   
  objIE.Quit 
  Set objIE = Nothing 
   
  On Error GoTo 0 
   
End Function 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA Anbinden Google Übersetzer an Excel
21.02.2019 12:24:30
Robert
Hallo Sepp,
herzlichen Dank für deine große Hilfe! :)
Das Ding funktioniert jetzt.
Viele Grüße,
Robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Google Übersetzer in Excel einbinden mit VBA


Schritt-für-Schritt-Anleitung

Um den Google Übersetzer in Excel über VBA zu nutzen, kannst du folgende Schritte befolgen:

  1. Öffne Excel und aktiviere die Entwicklertools:

    • Gehe zu "Datei" > "Optionen" > "Menüband anpassen" und aktiviere die Entwicklertools.
  2. Erstelle ein neues Modul:

    • Klicke auf "Entwicklertools" > "Visual Basic".
    • Im VBA-Editor, klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden VBA-Code ein:

    Public Function Uebersetzung(strQuelle As String, strZiel As String, strText As String) As String
       Dim objIE As Object
       Dim timeOut As Date
       On Error Resume Next
       Set objIE = CreateObject("InternetExplorer.Application")
       objIE.navigate "http://translate.google.com/?#" & strQuelle & "/" & strZiel & "/" & Replace(strText, " ", "%20")
       timeOut = Now + TimeValue("00:00:05")
       Do
           Uebersetzung = objIE.Document.getElementById("result_box").innerText
           If Now >= timeOut Then Exit Do
       Loop While Uebersetzung = ""
       objIE.Quit
       Set objIE = Nothing
       On Error GoTo 0
    End Function
    
    Sub Translate()
       Dim i As Integer, anzRows As Integer
       Dim strQuelle As String, strZiel As String, strText As String
       anzRows = ActiveWorkbook.ActiveSheet.Range("A1").CurrentRegion.Rows.Count
       strZiel = "EN" ' Zielsprache
       strQuelle = "DE" ' Quellsprache
       For i = 1 To anzRows
           strText = ActiveWorkbook.ActiveSheet.Range("A" & i).Value
           ActiveWorkbook.ActiveSheet.Range("B" & i) = Uebersetzung(strQuelle, strZiel, strText)
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Gib deine Texte in Spalte A ein und führe das Makro "Translate" aus, um die Übersetzungen in Spalte B zu erhalten.


Häufige Fehler und Lösungen

  • Problem: excel google translate geht nicht

    • Lösung: Stelle sicher, dass die Internetverbindung aktiv ist und der Google Übersetzer nicht blockiert wird.
  • Problem: google translate in excel funktioniert nicht

    • Lösung: Überprüfe, ob der Code korrekt eingefügt wurde und ob alle benötigten Bibliotheken aktiviert sind.
  • Problem: excel googletranslate funktioniert nicht

    • Lösung: Versuche, den Browser sichtbar zu machen, indem du objIE.Visible = True im Code hinzufügst, um zu sehen, ob Fehler auftreten.

Alternative Methoden

Wenn die Anbindung des Google Übersetzers nicht funktioniert, kannst du auch die DeepL API verwenden. Hier ein Beispiel für den VBA-Code, um mit DeepL zu arbeiten:

Sub DeepLTranslate()
    Dim http As Object
    Dim response As String
    Dim apiKey As String
    Dim textToTranslate As String

    apiKey = "DEIN_API_KEY"
    textToTranslate = "Hallo Welt"

    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "POST", "https://api.deepl.com/v2/translate", False
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.send "auth_key=" & apiKey & "&text=" & textToTranslate & "&target_lang=EN"

    response = http.responseText
    Debug.Print response
End Sub

Praktische Beispiele

  • Beispiel 1: Um einen deutschen Text in Englisch zu übersetzen, gib den Text in Zelle A1 ein und führe das Makro "Translate" aus. Die Übersetzung wird in Zelle B1 angezeigt.

  • Beispiel 2: Verwende die Funktion excel-text per formel übersetzen, indem du die Zellen A1 bis A10 mit deutschen Sätzen füllst und das Makro ausführen lässt, um sie automatisch zu übersetzen.


Tipps für Profis

  • Experimentiere mit der Änderung der Ziel- und Quellsprache in den Variablen strQuelle und strZiel, um unterschiedliche Übersetzungen zu erhalten (z.B. von EN nach DE).

  • Nutze die Fehlermeldungen des VBA-Editors, um eventuelle Probleme schnell zu beheben. Achte darauf, dass der Internet Explorer richtig konfiguriert ist, da der Code auf ihn zugreift.


FAQ: Häufige Fragen

1. Warum funktioniert die Google Translate-Funktion in Excel nicht? Es kann an einer Blockade durch Google liegen oder daran, dass der Code nicht korrekt eingegeben wurde.

2. Gibt es eine Möglichkeit, Text automatisch zu übersetzen? Ja, indem du das bereitgestellte Makro verwendest, kannst du ganze Spalten in Excel automatisch übersetzen.

3. Ist die Verwendung von DeepL besser als Google Translate? Viele Benutzer berichten, dass die Übersetzungen von DeepL qualitativ hochwertiger sind. Du kannst die API verwenden, um DeepL in Excel zu integrieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige