Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Sprache umschalten

Betrifft: Sprache umschalten von: Pascal
Geschrieben am: 13.08.2014 11:21:32

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 !!!!

  

Betrifft: 2.UF wäre am Einfachsten, ansonsten müssten ... von: Luc:-?
Geschrieben am: 13.08.2014 11:57:40

…günstigstenfalls im Initialize-Ereignis des UF alle primären Texte ausgetauscht bzw festgelegt wdn, Pascal.
Gruß, Luc :-?


  

Betrifft: AW: Sprache umschalten von: Daniel
Geschrieben am: 13.08.2014 12:50:40

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


  

Betrifft: AW: Sprache umschalten von: Pascal
Geschrieben am: 13.08.2014 14:00:22

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


  

Betrifft: AW: Sprache umschalten von: Daniel
Geschrieben am: 13.08.2014 14:15:00

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


  

Betrifft: AW: Sprache umschalten von: Pascal
Geschrieben am: 13.08.2014 15:14:10

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 ?


  

Betrifft: AW: Sprache umschalten von: Daniel
Geschrieben am: 13.08.2014 15:20:38

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


  

Betrifft: AW: Sprache umschalten von: Pascal
Geschrieben am: 13.08.2014 15:30:24

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

:-((


  

Betrifft: AW: Sprache umschalten von: Daniel
Geschrieben am: 13.08.2014 15:34:21

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


 

Beiträge aus den Excel-Beispielen zum Thema "Sprache umschalten"