{"id":55000325,"date":"2022-08-01T00:00:00","date_gmt":"2023-03-02T17:04:33","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=325"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Excel_Uebersetzungen_mit_DeepL","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Excel_Uebersetzungen_mit_DeepL\/","title":{"rendered":"Excel: &Uuml;bersetzungen mit DeepL"},"content":{"rendered":"<p><b>Im Artikel &#8220;Texte &uuml;bersetzen mit DeepL&#8221; (www.vbentwickler.de\/322) haben wir gezeigt, wie man mithilfe einer in der Basisversion kostenlosen Web-API &Uuml;bersetzungen von Texten durchf&uuml;hren kann. Das Ergebnis dieses Artikels war jedoch nur eine VBA-Funktion, mit der sich ein als Parameter angegebener Text &uuml;bersetzen l&auml;sst. Das ist f&uuml;r Otto Normalverbraucher nat&uuml;rlich etwas sperrig, sodass wir diese Funktion nun einmal mit in einer Excel-Tabelle gespeicherten Texten ausprobieren wollen. Gleichzeitig lernen wir etwas &uuml;ber das Auslesen und Schreiben von Inhalten aus und in Excel-Tabellen.<\/b><\/p>\n<h2>DeepL-Code zum Workbook hinzuf&uuml;gen<\/h2>\n<p>Als Erstes f&uuml;gen wir den ben&ouml;tigten Code zum VBA-Projekt des Workbooks hinzu, in welchem wir die Funktion zum &Uuml;bersetzen einsetzen wollen. Dazu &ouml;ffnen wir einfach den VBA-Editor, am schnellsten mit der Tastenkombination <b>Alt + F11<\/b>, und ziehen dann die Datei <b>mdlDeepL.bas <\/b>aus dem Download zu diesem Artikel in den Projekt-Explorer des VBA-Editors. Das Ergebnis sieht anschlie&szlig;end wie in Bild 1 aus &#8211; das Modul landet im Ordner <b>Module<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_325_001.png\" alt=\"Eingef&uuml;gtes Modul mit den &Uuml;bersetzungs-Funktionen\" width=\"700\" height=\"365,3625\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Eingef&uuml;gtes Modul mit den &Uuml;bersetzungs-Funktionen<\/span><\/b><\/p>\n<h2>Inhalt einer Zelle &uuml;bersetzen<\/h2>\n<p>Wenn wir nun den Inhalt einer Zelle &uuml;bersetzen wollen, brauchen wir nur die Funktion <b>TranslateDeepl<\/b>, die wir im Modul <b>mdlDeepL <\/b>finden, auf den Inhalt dieser Zelle anzuwenden und das Ergebnis in eine weitere Zelle zu schreiben.<\/p>\n<p>Dabei starten wir mit der Konstellation aus Bild 2. Der Text aus der Zelle <b>A2<\/b> soll &uuml;bersetzt und in die Zelle <b>B2 <\/b>geschrieben werden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_325_002.png\" alt=\"Dieser Text soll &uuml;bersetzt werden.\" width=\"499,6267\" height=\"336,3042\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Dieser Text soll &uuml;bersetzt werden.<\/span><\/b><\/p>\n<p>Wir steuern dies zun&auml;chst &uuml;ber den VBA-Editor. Hier legen wir die folgende Prozedur an:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>Uebersetzen()\r\n     <span style=\"color:blue;\">Dim <\/span>strOriginal<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strUebersetzung<span style=\"color:blue;\"> As String<\/span>\r\n     strOriginal = ActiveSheet.Cells(2, 1)\r\n     strUebersetzung = TranslateDeepl(strOriginal, _\r\n         sGerman, tBritishEnglish)\r\n     ActiveSheet.Cells(2, 2) = strUebersetzung\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur liest zuerst den Inhalt der Zelle aus der zweiten Zeile der ersten Spalte ein und schreibt diesen in die Variable <b>strOriginal<\/b>.<\/p>\n<p>Dann ermittelt sie mit dem Aufruf der Funktion <b>TranslateDeepL <\/b>die &Uuml;bersetzung des Textes und schreibt diese in die Variable <b>strUebersetzung<\/b>.<\/p>\n<p>Dabei &uuml;bergibt sie den Originaltext aus <b>strOriginal <\/b>als ersten Parameter sowie Konstanten f&uuml;r die Original- und die Zielsprache als zweiten und dritten Parameter. Das Ergebnis aus der Variablen <b>strUebersetzung <\/b>schreibt die Prozedur dann in die zweite Zeile der zweiten Spalte. Mehr brauchen wir nicht!<\/p>\n<p>Und die Prozedur l&auml;sst sich auch komplett ohne Variablen schreiben:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>Uebersetzen()\r\n     ActiveSheet.Cells(2, 2) = TranslateDeepl( _\r\n         ActiveSheet.Cells(2, 1), _\r\n         sGerman, tBritishEnglish)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>L&auml;ngere Texte &uuml;bersetzen<\/h2>\n<p>Mit der kostenlosen Variante von DeepL k&ouml;nnen wir bis zu 500.000 Zeichen pro Monat &uuml;bersetzen. Das entspricht mehr als 300 Seiten dieses Magazins. Wir k&ouml;nnen also durchaus auch mal einen l&auml;ngeren Text &uuml;bersetzen lassen. Wenn Du diesen wie im obigen Beispiel einfach in die Zelle A2 einf&uuml;gst und die Prozedur startest, wird die &Uuml;bersetzung des Textes in die Zelle rechts daneben eingetragen.<\/p>\n<p>Wir gehen an dieser Stelle aber einmal davon aus, dass sich der gew&uuml;nschte Text in einem anderen Dokument befindet und wir diesen erst einmal in geeigneter Form in die Zeilen einer Spalte der Excel-Tabelle bringen m&uuml;ssen.<\/p>\n<p>Am besten so, das jeweils kleinere H&auml;ppchen in jeder Zelle landen &#8211; so k&ouml;nnen wir kleinere Unterschiede bei der L&auml;nge der verschiedenen &Uuml;bersetzungen leicht ausgleichen.<\/p>\n<p>Wir haben den bisherigen Inhalt dieses Artikels einmal in die Zwischenablage kopiert und in die Zelle <b>A2<\/b> eingef&uuml;gt und da unser Text Zeilenumbr&uuml;che enth&auml;lt, wird er direkt absatzweise auf diese und die darunter liegenden Zellen aufgeteilt &#8211; im Beispiel bis zur Zelle <b>A25<\/b>. Das Ergebnis sieht danach etwa wie in Bild 3 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_325_004.png\" alt=\"Worksheet direkt nach dem Einf&uuml;gen\" width=\"499,6267\" height=\"509,8045\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Worksheet direkt nach dem Einf&uuml;gen<\/span><\/b><\/p>\n<p>Um die Abs&auml;tze in den einzelnen Zellen St&uuml;ck f&uuml;r St&uuml;ck zu &uuml;bersetzen, ben&ouml;tigen wir eine <b>For&#8230;Next<\/b>-Schleife. Diese l&auml;uft in der ersten Version von <b>l <\/b>gleich <b>2 <\/b>bis <b>25<\/b>, weil die zu &uuml;bersetzenden Texte sich in den so nummerierten Zeilen befinden.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000325\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000325?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000325\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"2987d086e8\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Artikel &#8220;Texte &uuml;bersetzen mit DeepL&#8221; (www.vbentwickler.de\/322) haben wir gezeigt, wie man mithilfe einer in der Basisversion kostenlosen Web-API &Uuml;bersetzungen von Texten durchf&uuml;hren kann. Das Ergebnis dieses Artikels war jedoch nur eine VBA-Funktion, mit der sich ein als Parameter angegebener Text &uuml;bersetzen l&auml;sst. Das ist f&uuml;r Otto Normalverbraucher nat&uuml;rlich etwas sperrig, sodass wir diese Funktion nun einmal mit in einer Excel-Tabelle gespeicherten Texten ausprobieren wollen. Gleichzeitig lernen wir etwas &uuml;ber das Auslesen und Schreiben von Inhalten aus und in Excel-Tabellen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662022,66042022,44000004,44000023,44000028],"tags":[],"yst_prominent_words":[],"class_list":["post-55000325","post","type-post","status-publish","format-standard","hentry","category-662022","category-66042022","category-Loesungen","category-PowerApps","category-Word_programmieren"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000325"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000325\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000325"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}