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

VBA Anbinden DeepL Übersetzer an Excel

Forumthread: VBA Anbinden DeepL Übersetzer an Excel

VBA Anbinden DeepL Übersetzer an Excel
12.04.2021 07:50:06
Mark
Hallo zusammen,
ich bin neu hier und möchte mein Problem kurz schildern:
Ich arbeite mit der DeepL-Übersetzungslösung (https://www.herber.de/forum/cgi-bin/callthread.pl?index=1676603#1676603) von Sepp.
Diese hat auch bis Ende Februar tadellos funktioniert. Aber seit 1.3. bekommen ich leider nur noch leere Übersetungen -
d.h. Uebersetzung = " "
Ich vermute momentan, dass CLASSNAME = "lmt__textarea lmt__target_textarea lmt__textarea_base_style" nicht mehr stimmt.
Leider kann ich kein HTML
Vielleicht kann mir hier jemand weiterhelfen
Besten Dank vorab
Gruß Mark
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Anbinden DeepL Übersetzer an Excel
12.04.2021 10:16:43
ChrisL
Hi Mark
Der ClassName stimmt.
Frag mich nicht wieso, aber ein Wait scheint zu helfen:
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:15")
Application.Wait 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
cu
Chris
Anzeige
AW: VBA Anbinden DeepL Übersetzer an Excel
12.04.2021 11:28:23
Mark
Hallo Chris,
vielen Dank für Deine Antwort.
So funktioniert es wieder - top!
Vielen Dank!
Gruß Mark
;
Anzeige

Infobox / Tutorial

DeepL Übersetzer in Excel mit VBA integrieren


Schritt-für-Schritt-Anleitung

Um den DeepL Übersetzer in Excel mit VBA zu integrieren, folge diesen Schritten:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul hinzufügen: Klicke im Menü auf Einfügen und wähle Modul.

  3. VBA-Code einfügen: Füge den folgenden Code in das Modul ein:

    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:15")
        Application.Wait 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
  4. Funktion nutzen: Du kannst die Funktion jetzt in Excel verwenden, um Texte zu übersetzen. Beispiel: =Uebersetzung("EN", "DE", "Hello World")


Häufige Fehler und Lösungen

  • Leere Übersetzungen: Wenn du nur leere Übersetzungen erhältst, könnte das an einem veralteten ClassName liegen. Stelle sicher, dass der CLASSNAME im Code korrekt ist.

  • Fehler beim Laden der Seite: Manchmal kann es sein, dass der Internet Explorer die Seite nicht schnell genug lädt. Erhöhe den Application.Wait-Zeitwert auf bis zu 00:00:15.


Alternative Methoden

Falls du DeepL nicht über VBA integrieren möchtest, gibt es auch andere Möglichkeiten:

  • DeepL API: Verwende die DeepL API für eine direkte Integration. Dies erfordert jedoch eine API-Registrierung und möglicherweise Programmierkenntnisse in einer anderen Sprache.

  • Add-Ins: Überprüfe den Microsoft Store auf Add-Ins, die DeepL-Funktionen anbieten. Diese sind oft benutzerfreundlicher.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die DeepL-Funktion in Excel nutzen kannst:

  1. Einfacher Text: =Uebersetzung("EN", "DE", "Good morning") gibt "Guten Morgen" zurück.

  2. Mehrere Zeilen: Du kannst auch mehrere Zeilen übersetzen, indem du die Funktion auf verschiedene Zellen anwendest.

  3. Bedingte Übersetzung: Erstelle eine Formel, die basierend auf einer Dropdown-Auswahl die Sprache ändert.


Tipps für Profis

  • Fehlerbehandlung: Füge eine Fehlerbehandlung in deinen Code ein, um unerwartete Probleme elegant zu handhaben.

  • Optimierung der Wartezeit: Experimentiere mit verschiedenen Wartezeiten, um die Leistung zu optimieren.

  • Sicherheit: Achte darauf, dass du die Sicherheitseinstellungen deines Browsers überprüfst, um Probleme beim Zugriff auf die DeepL-Seite zu vermeiden.


FAQ: Häufige Fragen

1. Warum erhalte ich keine Übersetzung?
Es kann sein, dass die Webseite von DeepL nicht richtig geladen wird. Stelle sicher, dass der ClassName im Code aktuell ist und die Wartezeiten ausreichend sind.

2. Ist die Nutzung der DeepL API kostenlos?
Die DeepL API bietet sowohl kostenlose als auch kostenpflichtige Pläne an. Überprüfe die offizielle Website für weitere Details.

3. Welche Excel-Version benötige ich?
Die beschriebenen Methoden funktionieren in Excel-Versionen, die VBA unterstützen, wie Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige