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

Forumthread: Sprache umschalten

Sprache umschalten
13.08.2014 11:21:32
Pascal
Guten Tag zusammen
Ich stehe mal wieder vor einem Problem bei dessen Lösungsfindung mir hier hoffentlich jemand behilflich sein kann.
Es geht um folgendes Vorhaben.
In einer grösseren Datenbank (Excel Arbeitsmappe mit UserFormen, Labels, Textboxen, Listboxen etc…) werden diverse
Daten ab Excel-Tabelle auf mehrere UserFormen geladen und angezeigt. Ab Userform ist KEINE Datenpflege der Datensätze
möglich.
Nun soll eine Möglichkeit (Schaltfläche) in der Datenbank integriert werden, auf dessen Knopfdruck sich alle UserFormen in die
Französische Sprache übersetzen. Natürlich sollen dann auch die Datenbank-Einträge welche auf der Userform angezeigt werden
Nach französisch übersetzen.
Für mich ist soweit klar:
In der Datenbank brauch ich jedes Tabellenblatt sowohl in Deutsch wie auch eine 1:1 Kopie davon in Französisch
(Tabellenblatt/Registernamen: D_ …. für Deutsch und F_ …. für Französisch). Somit pflege ich also jeden Datensatz in der Datenbank
mal auf Deutsch und einmal auf Französisch.
Nun stellt sich mir die Frage:
Brauch ich von jeder UserForm eine 1:1 Kopie mit französischer Sprache oder…. Wie lös ich das am einfachsten ?
Wer hat da Lösungsansätze ?
Im Voraus herzlichen Dank !!!!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
2.UF wäre am Einfachsten, ansonsten müssten ...
13.08.2014 11:57:40
Luc:-?
…günstigstenfalls im Initialize-Ereignis des UF alle primären Texte ausgetauscht bzw festgelegt wdn, Pascal.
Gruß, Luc :-?

AW: Sprache umschalten
13.08.2014 12:50:40
Daniel
Hi
ich würde es bei einer Userform belassen und einen Code schreiben, der entsprechend der gewählten Sprache die Captions der Buttons und Labels wechselt.
das ist ein einmaliger Aufwand.
bei einer zweiten Userform verdoppelt sich dein Pflegeaufwand, da du alle Änderungen zweimal machen musst.
Sollten weitere Sprachen hinzukommen, verschlimmert sich das.
Desweiteren hätte ein Makro zum Wechseln der Beschriftung den Vorteil, dass du jederzeit die Sprache wechseln kannst, ohne die Userform schließen zu müssen, du kannst einfach umschalten.
du kannst dir das Beschriften unterstützen, indem du dir eine Hilfstabelle anlegst in der in Spalte A der Name des Controls steht und in den folgenden Spalten seine beschriftung in der jeweiligen Sprache.
kommen jetzt weiter Sprachen hinzu, musst du nur dieser Tabelle neue Spalten mit neuen Beschriftungstexten hinzufügen.
Zum wechseln der Sprache musst du dann nur in einer Schleife diese Tabelle durchlaufen und die Captions der Steuerelemente entsprechend setzen.
Gruß Daniel

Anzeige
AW: Sprache umschalten
13.08.2014 14:00:22
Pascal
Hallo alle zusammen!
besten Dank für Eure Antworten und Ratschläge
ich versuche nun also bei Workbook_Open() eine Variable namens "sprache" abzufüllen mit einem Startwert für die Sprache.
Diesen Wert will ich dann mit einer Schaltfläche ändern können.
Bei Workbook_Open() weise ich der Variable "sprache" den Wert "D_" für Deutsch zu.
...
Leider ist bei der ersten Userform initialize die Variable aber schon wieder leer.
dies, obwohl ich die Variable "sprache" als Public deklariert habe.
was mach ich, damit die Variable auch dann noch besteht, wenn initialize aufgerufen wird ?
Leider ist das File sooo gross, dass ich es hier nicht einstellen kann

Anzeige
AW: Sprache umschalten
13.08.2014 14:15:00
Daniel
Hi
Variablen, die in allen Modulen genutzt werden sollen, musst du in einem allgemeinen Modul oberhalb der Makros (dh direkt unter Option Explicit) als Public deklarieren.
Gruß Daniel

AW: Sprache umschalten
13.08.2014 15:14:10
Pascal
Hi Daniel
Ich habe ein Modul eingefügt und diesem auch gleich den Namen vergeben: "Allgemeines_Definitionsmodul"
dort drin steht:
Option explicit
Public Sprache as String
... es geht gleichwohl nicht :-(
Variable verliert ständig ihren Wert am Ende der Sub
Muss ich das Public Sprache as String in jedes Modul in den Deklarationsabschnitt schmeissen ?

Anzeige
AW: Sprache umschalten
13.08.2014 15:20:38
Daniel
Hi
nein, die Deklaration darf nur einmal erfolgen.
wenn du die Variable "Sprache" in mehreren Modulen deklarierst, dann erzeugst du auch mehrere unabhängige Variblen.
in den Modulen, in denen du "Sprache" nicht deklariert hast, wird die Variable "Sprache" aus dem allgemeinen Modul verwendet.
in den Modulen in denen du "Sprache" nochmal deklarierst, wird eine neue Variable erzeugt, die dann zunächtmal leer ist.
Gruß Daniel

Anzeige
AW: Sprache umschalten
13.08.2014 15:30:24
Pascal
Ich habe wirklich nur einmal gesetzt:
Option explicit
Public Sprache as String
Die Variable Sprache fülle ich bei der Sub Workbook_Open()
mit dem Startwert Sprache = "D_" ab.
aber schon beim Userform initialize ist der Wert der Variable wieder leer
:-((

AW: Sprache umschalten
13.08.2014 15:34:21
Daniel
HI
das problem ist, solange wir deine Datei nicht kennen und genau sehen, was du überhaupt gemacht hast, können wir dir auch nicht sagen, was du falsch gemacht hast.
ich sehe jetzt z.B. nicht, in welchem Modul du "Sprache" deklariert hast, ich sehe auch nicht, wie du die Variable "abfüllst" und was danach damit passiert.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Sprache umschalten in Excel


Schritt-für-Schritt-Anleitung

Um die Sprache in einer Excel-Anwendung umzuschalten, kannst du die folgenden Schritte befolgen:

  1. Erstelle eine Hilfstabelle: Lege eine Tabelle an, in der in der ersten Spalte die Namen der Steuerelemente (z.B. Labels, Buttons) und in den folgenden Spalten die entsprechenden Übersetzungen (Deutsch, Französisch) stehen.

    ControlName Deutsch Französisch
    btnSpeichern Speichern Enregistrer
    lblTitel Titel Titre
  2. Schreibe ein Makro: Erstelle ein Makro, das beim Klicken auf eine Schaltfläche die Captions der Steuerelemente entsprechend der gewählten Sprache aktualisiert:

    Sub SpracheWechseln()
       Dim ws As Worksheet
       Dim ctrl As Control
       Dim sprache As String
    
       sprache = "F_" ' oder "D_" je nach gewählter Sprache
    
       For Each ws In ThisWorkbook.Worksheets
           If Left(ws.Name, 2) = sprache Then
               For Each ctrl In UserForm1.Controls
                   If Not IsEmpty(Application.VLookup(ctrl.Name, ws.Range("A:C"), 2, False)) Then
                       ctrl.Caption = Application.VLookup(ctrl.Name, ws.Range("A:C"), 3, False)
                   End If
               Next ctrl
           End If
       Next ws
    End Sub
  3. Anpassen der UserForm: Füge eine Schaltfläche in die UserForm ein, die das Makro ausführt.

  4. Initialisieren der Variablen: Stelle sicher, dass die Variable für die Sprache im allgemeinen Modul deklariert ist, um den Wert auch nach dem Initialisieren der UserForm zu behalten.


Häufige Fehler und Lösungen

  • Variable verliert ihren Wert: Wenn die sprache-Variable bei der Initialisierung der UserForm leer ist, stelle sicher, dass sie als Public im allgemeinen Modul deklariert ist und nirgends anders erneut deklariert wird.

  • Fehler bei der Vlookup-Funktion: Überprüfe, ob die Namen der Steuerelemente in der Hilfstabelle korrekt und ohne Tippfehler eingetragen sind.


Alternative Methoden

Anstatt die Captions manuell zu ändern, kannst du auch die Excel Formel zur Sprache ändern verwenden, um dynamisch verschiedene Sprachen basierend auf der Benutzereingabe zu laden. Diese Methode erfordert, dass die Daten in einer gut strukturierten Excel-Tabelle angelegt werden.


Praktische Beispiele

Ein Beispiel für eine UserForm, die die Captions in Französisch anzeigt, könnte wie folgt aussehen:

Private Sub UserForm_Initialize()
    Dim sprache As String
    sprache = "F_" ' Französische Sprache
    SpracheWechseln
End Sub

Hierbei wird beim Öffnen der UserForm die SpracheWechseln-Sub aufgerufen, die die Captions entsprechend der Sprache aktualisiert.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Fehler durch ungenaue Variablendeklarationen zu vermeiden.

  • Nutze SAP Sprache umstellen: Wenn du auch mit SAP arbeitest, kann es hilfreich sein, ähnliche Prinzipien anzuwenden, um Sprachen in Excel zu wechseln.

  • Halte die Hilfstabelle aktuell: Wenn du neue Steuerelemente hinzufügst, vergiss nicht, die Hilfstabelle mit den neuen captions franzoesisch zu ergänzen, um die Pflege zu erleichtern.


FAQ: Häufige Fragen

1. Wie kann ich die Sprache in Excel umschalten?
Du kannst eine Schaltfläche in deiner UserForm erstellen, die ein Makro aufruft, das die Captions der Steuerelemente basierend auf der gewählten Sprache ändert.

2. Was mache ich, wenn meine Variable leer ist?
Stelle sicher, dass die Variable als Public im allgemeinen Modul deklariert ist und nicht in anderen Modulen erneut deklariert wird.

3. Kann ich auch mehr als zwei Sprachen hinzufügen?
Ja, ergänze einfach neue Spalten in deiner Hilfstabelle für jede zusätzliche Sprache und passe das Makro entsprechend an.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige