Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform,mehrsprachige Tabellen

Userform,mehrsprachige Tabellen
rene
Hallo an alle,
Ich versuche mich an einer mehrsprachigen Userform ,die Beschriftung der OptionButton werden aus einer Tabelle("Übersetzung")gelesen , mit einer ComboBox kann die Sprache ausgewählt werden, abhängig von der gewählten Sprache sollten die Beschriftung der OptionButton entsprechend geändert werden .
Wie könnte die Caption der Userform (sprachabhängig)ebenso darüber geändert werden?
Beispiel
https://www.herber.de/bbs/user/81767.xls
Vielen Dank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform,mehrsprachige Tabellen
09.09.2012 16:22:12
Hajo_Zi
Hallo Rene,
Du solltest die Sparachen in der gleichen Reihefolge machen wie die Auswahl.

Private Sub cboSprache_Change()
If cboSprache  "" Then
With Worksheets("Übersetzung")
OptionButton1.Caption = .Cells(1, cboSprache.ListIndex)
OptionButton2.Caption = .Cells(2, cboSprache.ListIndex)
End With
End If
End Sub

AW: Userform,mehrsprachige Tabellen
09.09.2012 16:32:23
MisterB
Hallo,
sicherlich nicht die eleganteste Lösung aber sie funktioniert:
Private Sub cboSprache_Change()
If cboSprache.Value = "English" Then
For x = 1 To 5
Me.Controls("OptionButton" & x).Caption = Sheets("Übersetzung").Cells(x, 1)
Next
End If
If cboSprache.Value = "Deutsch" Then
For x = 1 To 5
Me.Controls("OptionButton" & x).Caption = Sheets("Übersetzung").Cells(x, 2)
Next
End If
If cboSprache.Value = "Italiano" Then
For x = 1 To 5
Me.Controls("OptionButton" & x).Caption = Sheets("Übersetzung").Cells(x, 3)
Next
End If
End Sub
Gruß
Martin

Anzeige
AW: Userform,mehrsprachige Tabellen
09.09.2012 16:31:33
Beverly
Hi Rene,
schreibe in die Tag-Eigenschaft der Optionsbutton die Zeile, in welcher der Begriff steht, der als Caption angzeigt werden soll, dann kannst du mit diesem Code die Caption ändern:

Private Sub cboSprache_Change()
Dim ctrElement As Control
Dim intSpalte As Integer
Select Case cboSprache
Case "Deutsch"
intSpalte = 2
Case "English"
intSpalte = 1
Case "Italiano"
intSpalte = 3
End Select
If intSpalte  0 Then
For Each ctrElement In Me.Controls
If ctrElement.Tag  "" Then ctrElement.Caption = _
Worksheets("Übersetzung").Cells(ctrElement.Tag * 1, intSpalte).Value
Next ctrElement
End If
Me.Repaint
End Sub


Einfacher wäre es, wenn du die Übersetzung in der selben Spaltenreihenfolge ablegen würdest, wie die Sprachen in der ComboBox stehen, dann könnte man sich den ganzen Select Case Teil sparen.


Anzeige
AW: Userform,mehrsprachige Tabellen
09.09.2012 19:58:39
rene
Hallo Karin und auch den anderen vielen Dank
Ich versuche nun den select teil zu entfernen ,bekomme das aber nicht hin,Wie muss der Code denn geändert werden?
Kann man die Caption der Userform auch damit ändern?wäre es auch möglich die sprachen direkt aus dem Blatt"Übersetzung"in die cboSprache zu schreiben ?so kann mann sich das Blatt "Sprache" sparen. Kann man die Caption der Userform auch damit ändern?
https://www.herber.de/bbs/user/81773.xls
Vielen Dank

AW: Userform,mehrsprachige Tabellen
09.09.2012 20:19:06
MisterB
Hallo Rene,
du könntest die ausgewählte Sprache direkt in eine Zelle schreiben und dann mittels Wenn/Dann Formeln die entsprechenden Begriffe anzeigen lassen. Also z.B.
Private Sub cboSprache_Change
Range("A1") = cboSprache.Value
und in der Tabelle
In C1 z.B. Wenn A1 = "Deutsch" Dann "Balken"; Wenn A1 = "English" dann ....
In C2 z.B. Wenn A1 = "Deutsch" Dann "Prozess"; Wenn A1 = "English" dann ....
OptionButton1.Caption = Range("C1")
Gruß
Martin

Anzeige
AW: Userform,mehrsprachige Tabellen
09.09.2012 20:19:07
MisterB
Hallo Rene,
du könntest die ausgewählte Sprache direkt in eine Zelle schreiben und dann mittels Wenn/Dann Formeln die entsprechenden Begriffe anzeigen lassen. Also z.B.
Private Sub cboSprache_Change
Range("A1") = cboSprache.Value
und in der Tabelle
In C1 z.B. Wenn A1 = "Deutsch" Dann "Balken"; Wenn A1 = "English" dann ....
In C2 z.B. Wenn A1 = "Deutsch" Dann "Prozess"; Wenn A1 = "English" dann ....
OptionButton1.Caption = Range("C1")
Gruß
Martin

AW: Userform,mehrsprachige Tabellen
09.09.2012 22:06:50
Beverly
Hi Rene,
im Codemodul des UserForms brauchs du nur diesen Code:
Private Sub UserForm_Initialize()
Dim intSpalte As Integer
With Worksheets("Übersetzung")
' Schleife über alle belegten Zellen in Zeile 1
For intSpalte = 1 To IIf(IsEmpty(.Cells(1, .Columns.Count)), _
.Cells(1, .Columns.Count).End(xlToLeft).Column, .Columns.Count)
' ComboBox füllen
cboSprache.AddItem .Cells(1, intSpalte)
Next intSpalte
End With
' 1. Eintrag aktivieren
cboSprache.ListIndex = 0
End Sub
Private Sub cboSprache_Change()
Dim ctrElement As Control
For Each ctrElement In Me.Controls
If ctrElement.Tag  "" Then ctrElement.Caption = _
Worksheets("Übersetzung").Cells(ctrElement.Tag * 1, cboSprache.ListIndex + 1).Value
Next ctrElement
Me.Repaint
End Sub


Anzeige
AW: Userform,mehrsprachige Tabellen
09.09.2012 22:20:43
rene
Hallo Karin
funktioniert soweit super ! Die Caption der Userform ändert sich aber leider nicht !Was müsste da noch am Code geändert werden ?
Danke René

AW: Userform,mehrsprachige Tabellen
10.09.2012 08:09:24
Beverly
Hi René,
dazu musst du nur im Change-Ereignis ergänzen, dass Caption = cboSprache ist.


Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige