Forums Neueste Beiträge
 

Mehrsprachige Textfelder und Dokument

11/11/2009 - 22:11 von Andre Gobet | Report spam
Hallo zusammen

Ich habe ein verzwicktes Problem. Ich möchte für meine User ein VBA
UserForm zur Verfügung stellen welches am Ende zwei Dokumente ausgibt
nàmlich eines in Französischer Sprache und eines in Deutscher.

Das Ziel ist folgendes dass der User aus einer DropDown Liste den
gewünschten Wert oder Text in deutscher Sprache auswàhlen kann und
dieser dann in einer TextBox in deutscher Sprache sowie in einer
anderen TextBox in französischer Sprache angezeigt wird.

Prinzip:

Werte in der DropDown Auswahl

- Allgemein
- Halbprivat
- Privat

Bei Selektion von z.B. "Allgemein" sollte dann in einer anderen
Textbox der Französische Text "Commune" erscheinen.

****

Die Werte sind in einer externen .txt Datei gespeichert welche ich
mittels dem nachfolgenden Befehl in's Word übernehme und dem DropDown
zuweise:

Open "C:\Schafer_Office_V3\Visual_Office\config_files_Decap
\abteilung.txt" For Input As #1
While Not EOF(1)
Line Input #1, l
Me.uvgAbteilung.AddItem l ' Abteilung: UVG-Abteilung
Wend
Close #1

Wie kann ich das am einfachsten bewerkstelligen ? Hat hier jemand eine
Idee?

Gruss

- André
 

Lesen sie die antworten

#1 Christian Freßdorf
12/11/2009 - 07:24 | Warnen spam
Hallo Andre,

Das Ziel ist folgendes dass der User aus einer DropDown Liste den
gewünschten Wert oder Text in deutscher Sprache auswàhlen kann und
dieser dann in einer TextBox in deutscher Sprache sowie in einer
anderen TextBox in französischer Sprache angezeigt wird.



ich würde über folgendes nachdenken:

Du làdst wie gezeigt die deutschen Werte in die Listbox/Combobox. Aber du
verwendest dabei eine 2 spaltige Box, bei der nur die 1. Spalte angezeigt
wird:

Einlesen der Sprachen:
'-
With Me.ComboBox1
.Clear
.AddItem "Deutsch"
.List(.ListCount - 1, 1) = "Deutsch"
.List(.ListCount - 1, 2) = "Französisch"
.AddItem "Deutsch2"
.List(.ListCount - 1, 1) = "Deutsch2"
.List(.ListCount - 1, 2) = "Französisch2"
End With
'--

und bei Auswahl eines Box-Eintrages greifst du dann auf die 2. Spalte zu
und füllst diese in die Textmarke des französischen Dokumentes und die 1.
Spalte in die Textmarke des deutschen Dokumentes:

'
ReplaceBookmarkText(ActiveDocument, "Deutsch") = .List(.ListIndex, 1)
ReplaceBookmarkText(ActiveDocument, "Französisch") = .List(.ListIndex, 2)
'

Die Funktion zum Füllen von Textmarken:
'
Public Property Get ReplaceBookmarkText(oDoc As Document, strBMName As
String) As String
Dim rng As Range
If oDoc.Bookmarks.Exists(strBMName) Then
ReplaceBookmarkText = oDoc.Bookmarks(strBMName).Range.Text
Else
ReplaceBookmarkText = ""
End If

End Property
Property Let ReplaceBookmarkText(oDoc As Document, strBMName As String,
strText As String)
Dim rng As Range
If oDoc.Bookmarks.Exists(strBMName) Then
Set rng = oDoc.Bookmarks(strBMName).Range
rng.Text = strText
oDoc.Bookmarks.Add strBMName, rng
End If
End Property
'--
(diesmal als Property-Funktion)

ist der Ablauf soweit klar geworden?


Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)

Ähnliche fragen