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

Forumthread: VBA Excel Begriffe übersetzen FR / EN

VBA Excel Begriffe übersetzen FR / EN
17.07.2018 12:02:33
Nik
Hallo liebe Community,
Ich stehe vor folgendem Problem und brauche mal wieder eure Hilfestellung.
Eine Liste mit 1200 Begriffen (manchmal nur ein Wort, aber meistens 2 Wörter) soll aus dem Französischen ins Englische grob Übersetzt werden.
https://www.herber.de/bbs/user/122735.xlsx
In Spalte D stehen die französischen Begriffe und in Spalte E das englische Pendant. Ich benutze dazu Google Translate, weil das in den meisten Fällen ziemlich genau die richtige Übersetzung trifft. Mache das per Copy&Paste, was jedoch enorm viel Zeit in Anspruch nimmt, bzw. sehr mühselig ist.
https://translate.google.de/m/translate?hl=de#fr/en/
Kann ich so eine Abfrage / Übersetzung irgendwie in ein Makro bringen, dass er die Zeilen automatisch abklappert und die Begriffe automatisch übersetzt und in Excel einfügt?
Ich habe schon ein wenig Erfahrung mit VBA sammeln können in den letzten 2 Jahren, aber alles nur "learning by doing". Eventuell gibt es ein Modul, dass durch das man die Begriffe jagen könnte?
Habe schon das WWW nach eine Lösung für dieses Problem durchforstet, bin jedoch leider nicht ansatzweise fündig geworden.
Bin für jede Hilfe oder Hinweis dankbar. :-)
Grüße
Nik
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: GM + BMW
17.07.2018 12:07:30
Fennek
Hallo,
mit einigem Geschick sollte man für ein einzelnes Word eine automatisierte Abfrage programmieren können, für ganze Sätze geht dies wohl nicht.
Früher war dies eine klassische Aufgabe für ein Übersetzungsbüro.
mfg
AW: VBA Excel Begriffe übersetzen FR / EN
17.07.2018 12:29:18
Bernd
Hi,
hilft das:
Sub Uebersetzung_google()
On Error Resume Next
Dim IEApp As Object
Dim IEDocument As Object
Dim strErgebnis As String
Set IEApp = CreateObject("InternetExplorer.Application")
For i = 2 To Sheets(1).UsedRange.Rows.Count
erneut:
IEApp.Visible = False
IEApp.Navigate "http://translate.google.de/?hl=de&tab=wT#fr|en|" & Sheets(1).Cells(i, 1)
Application.StatusBar = "Übersetze-> " & Sheets(1).Cells(i, 1).Value
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
Set IEDocument = IEApp.Document
Do: Loop Until IEDocument.ReadyState = "complete"
strErgebnis = IEDocument.getElementById("result_box").innerText
Set IEDocument = Nothing
If strErgebnis = "" Then GoTo erneut
Sheets(1).Cells(i, 2) = strErgebnis
IEApp.Navigate "http://translate.google.de"
strErgebnis = ""
Next
IEApp.Quit
Set IEApp = Nothing
Application.StatusBar = False
MsgBox "Fertig"
End Sub
Hier gefunden:
https://www.herber.de/forum/archiv/1260to1264/1260711_Liste_an_Woertern_mit_Google_Translater_uebersetzen.html
MfG Bernd
Anzeige
AW: VBA Excel Begriffe übersetzen FR / EN
17.07.2018 12:56:29
Nik
Hi Bernd,
You made my day! Das ist der Wahnisnn.. und es funktionert einwandfrei! :-)))))
Danke danke danke!
Gerne und Danke für die Rückmeldung - owT
17.07.2018 12:59:29
Bernd
AW: Gerne und Danke für die Rückmeldung - owT
17.07.2018 13:17:08
Torsten
hab nochmal ne Frage hierzu. Ich hab das gerade mal ausprobiert, angepasst an meine Tabelle.
Der Code startet zwar, aber hoert nicht mehr auf.
Muss IE offen sein vor dem Start?
Oder dauert das wirklich soooo lange?
Anzeige
AW: Gerne und Danke für die Rückmeldung - owT
17.07.2018 13:22:11
Bernd
Hi Nik und/oder Torsten?
Deine Aufgabenstellung war:
Kann ich so eine Abfrage / Übersetzung irgendwie in ein Makro bringen, dass er die Zeilen automatisch abklappert und die Begriffe automatisch übersetzt und in Excel einfügt?
Nun ja, das macht diese Lösung, ob schnell oder langsam ergibt sich vermutlich aus der Vielzahl der Zeilen welche zu Übersetzen sind.
Da ich selbst kein VBA Profi bin, weiß ich auch nicht, ob es noch zu verbessern ist damit es schneller läuft.
Eventuel gibts ja auch andere Lösungen im netz, Googeln hilft, hab ja diesen Ansatz auch bereits nach 5 Minuten gefunden.
MfG Bernd
Anzeige
AW: Gerne und Danke für die Rückmeldung - owT
18.07.2018 06:43:53
Nik
Guten Morgen,
für mich ist das soweit klar und hilft mir ungemein.
Und ja, so lange der IE benötigt um die Übersetzung auszuspucken, so lange dauert es auch bis er zum nächsten Begriff springt. Das hängt u.a. auch an deiner Internetverbindung, etc.
Ist diese Zeile hier -->

Do: Loop Until IEApp.Busy = False
Und das ist m.E. nach auch die schnellste Methode, denn er wartet so lange bis der IE eben nicht mehr beschäftigt ist. Bei alten Windows Version war es ähnlich, sprich dass der Mauszeiger sich in eine Sanduhr verwandelte, solange WIN am arbeiten war. Das ist vom Prinzip vergleichbar.
Der IE muss dazu jedenfalls nicht geöffnet sein. Der läuft im Hintergrund.
Man könnte das ganze eventuell noch beschleunigen, wenn man das Screenupdateing und / oder Kalkulation zu beginn des Makros ausschaltet. Aber Vorsicht: Am Ende des Makros unbedingt wieder einschalten (!).
Der Code zum Ausschalten:
    Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Und zum Einschalten:
    Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

@Torsten
Ich weiss nicht wieviele Wörter bzw Zeilen du durchlaufen lässt. Bei mir braucht er für jeden Begriff so um die 2 - 3 Sekunden maximal. Das summiert sich dann schon bei einigen Begriffen. Aber ob er was macht siehst du ja anhand dessen, dass er immer wieder Übersetzung in deine Zielzelle einträgt.
Was aber auch sein kann ist, dass du ganz viele Zellen mit Leerzeichen in deinem Sheet hast. _ Die rattert er dann auch durch. Da er ja mit dem Code

"For i = 2 To Sheets(1).UsedRange.Rows.Count"
zählt wie viele Zellen benutzt sind. Das gilt auch für Zellen mit einem Leerzeichen, soweit ich weiß.
Hoffe das hilft und ich habe keinen Müll erzählt.
LG, Nik
Anzeige
AW: Gerne und Danke für die Rückmeldung - owT
18.07.2018 07:00:52
Nik
Nochmal eine Frage ...
IEDocument.getElementById("result_box").innerText
Wie kommt er auf die "Result box"? Ist das ein Standart beim IE oder gibt es eine Möglichkeit verschiedene ID´s bzw Bereiche/Elemente von Internet Seiten herauszufinden?
Habe den Quelltext der Google Translate Seite durchsucht, jedoch kenne ich mich nicht genug damit aus, um da wirklich was zu finden, geschweige denn zu verstehen.
LG, Nik
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Excel: Begriffe automatisch übersetzen FR / EN


Schritt-für-Schritt-Anleitung

Um eine Liste von Begriffen aus dem Französischen ins Englische automatisch zu übersetzen, kannst du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und lade die Datei, die die zu übersetzenden Begriffe enthält. Die französischen Begriffe sollten in Spalte D stehen.

  2. Öffne den VBA-Editor:

    • Drücke ALT + F11 um den Visual Basic for Applications (VBA) Editor zu öffnen.
  3. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Uebersetzung_google()
       On Error Resume Next
       Dim IEApp As Object
       Dim IEDocument As Object
       Dim strErgebnis As String
       Set IEApp = CreateObject("InternetExplorer.Application")
       For i = 2 To Sheets(1).UsedRange.Rows.Count
           erneut:
           IEApp.Visible = False
           IEApp.Navigate "http://translate.google.de/?hl=de&tab=wT#fr|en|" & Sheets(1).Cells(i, 4)
           Application.StatusBar = "Übersetze-> " & Sheets(1).Cells(i, 4).Value
           Do: Loop Until IEApp.Busy = False
           Do: Loop Until IEApp.Busy = False
           Set IEDocument = IEApp.Document
           Do: Loop Until IEDocument.ReadyState = "complete"
           strErgebnis = IEDocument.getElementById("result_box").innerText
           Set IEDocument = Nothing
           If strErgebnis = "" Then GoTo erneut
           Sheets(1).Cells(i, 5) = strErgebnis
           IEApp.Navigate "http://translate.google.de"
           strErgebnis = ""
       Next
       IEApp.Quit
       Set IEApp = Nothing
       Application.StatusBar = False
       MsgBox "Fertig"
    End Sub
  5. Führe das Makro aus:

    • Drücke F5 oder klicke auf Run, um das Makro auszuführen. Es wird die Übersetzung der Begriffe in Spalte E einfügen.

Häufige Fehler und Lösungen

  • Problem: Das Makro reagiert nicht oder bleibt hängen.

    • Lösung: Stelle sicher, dass die Internetverbindung stabil ist. Das Makro benötigt eine funktionierende Verbindung zu Google Translate.
  • Problem: Der Internet Explorer öffnet sich nicht.

    • Lösung: Überprüfe, ob der Internet Explorer ordnungsgemäß installiert ist. Das Makro verwendet IE zur Durchführung der Übersetzungen.
  • Problem: googletranslate funktioniert nicht.

    • Lösung: Stelle sicher, dass die URL im Code korrekt ist und dass Google Translate nicht blockiert ist.

Alternative Methoden

Es gibt auch alternative Methoden, um einen Excel sheet zu übersetzen:

  1. Formelbasierte Übersetzung:

    • Du kannst die Google Translate API verwenden, um den Übersetzungsprozess in Excel zu automatisieren, ohne VBA zu verwenden.
  2. Excel-Add-Ins:

    • Es gibt verschiedene Add-Ins, die die Funktionalität zur Übersetzung direkt in Excel integrieren.
  3. Manuelle Übersetzung:

    • Für kleinere Listen kannst du die Begriffe manuell auf der Google Translate Webseite eingeben.

Praktische Beispiele

Hier ist ein Beispiel für die Anwendung des VBA-Codes:

  • Begriff in D2: "Bonjour"
  • Erwartete Übersetzung in E2: "Hello"

Du kannst den Code anpassen, um eine ganze Spalte zu übersetzen, indem du die Schleife anpasst, um die gewünschte Spalte zu durchlaufen.


Tipps für Profis

  • Schnelligkeit optimieren: Deaktiviere das Screen Updating und die automatische Berechnung am Anfang des Makros, um die Ausführungsgeschwindigkeit zu erhöhen. Verwende:

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
  • Ergebnisse überprüfen: Füge eine Validierung hinzu, um sicherzustellen, dass die Übersetzungen korrekt sind.

  • Fehlerbehandlung: Implementiere eine bessere Fehlerbehandlung, um unerwartete Probleme abzufangen.


FAQ: Häufige Fragen

1. Muss der Internet Explorer offen sein, bevor ich das Makro starte? Nein, der Internet Explorer wird im Hintergrund geöffnet, wenn das Makro ausgeführt wird.

2. Wie kann ich die Übersetzung in eine bestimmte Zelle einfügen? Ändere die Zielzelle im Code, indem du Sheets(1).Cells(i, 5) anpasst, um die gewünschte Zelle auszuwählen.

3. Woher weiß ich, ob der Code erfolgreich war? Eine Meldung wird am Ende des Makros angezeigt, wenn der Übersetzungsprozess abgeschlossen ist.

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