Mehrsprachigkeit in TextBoxen
14.03.2023 15:37:02
krug96
ich könnte mal wieder etwas Hilfe benötigen.
ich würde gerne eine Excel-Datei (https://www.herber.de/bbs/user/158254.xlsx) auslesen, die verscheidene Reiter hat. Jeder Reiter ist eindeutig gekennzeichnet: deutsch, englisch, russisch, usw.
In jedem Tabellenblatt gibt es die gleiche Anzahl an Spalten und Zeilen.
Der eindeutige Kenner steht pro Tabellenblatt in der Spalte 1.
In einer andern ExcelDatei gibt es die UserForm1 mit diversen TextBoxen und zwei ComboBoxen. In der einen ComboBox1 werden alle Zeilen aus einem Tabellenblatt eingefügt und in der ComboBox2 stehen die Sprachen der vorhandenen Reiter. Über die Auswahl eines Eintrages in CombBox1 werden dann die entsprechenden Werte aus einer Zeile in den Zellenweise in die TextBoxen eingetragen.
Ziel ist es, dass über die ComboBox2 eine andere Sprache ausgewählt werdenn kann. Dann sollen die Zellen-Inhalte aus dem gewählten Tabellenblatt in den TextBoxen entsprechend gewechselt werden und zwar so, dass diese zu der Auswahl in ComboBox1 übereinstimmen.
Könnte man das eventuell über ein mehrdimansionales Array realisieren und zwar so, dass beim Öffnen der UserForm alle vorhandenen Sprachen geladen werden und somit das Umstellen schneller geht?
Oder gibt es eventuell einen andern Lösungsansatz?
Vielen Dank für eure Hilfe.
Private Sub CommandButton999_Click()
DateiNameExcel = "TestBGQ.xlsx"
BestimmteSpalte = 1
BestimmteZeile = 1
'zuerst wird der Inhalt aus Reiter1 = deutsch in ein Array eingelesen
If IsEmpty(arrTestBGQCB) Then
If DateiVorhanden("c:\excel\" & DateiNameExcel) Then
objExcel.Workbooks.Open "c:\excel\" & DateiNameExcel, ReadOnly:=True
Set objSheet = objExcel.Sheets("deutsch")
With objSheet
leZeile = .Cells(.Rows.Count, BestimmteSpalte).End(xlUp).Row
leSpalte = .Cells(BestimmteZeile, .Columns.Count).End(xlToLeft).Column
arrTestBGQCB = .Range(.Cells(2, 1), .Cells(leZeile, leSpalte)).Value
'hier werden die Reiter ausgelesen und in ComboBox2 eingetragen
UserForm1.ComboBox2.clear
For I = 1 To objExcel.Worksheets.Count
UserForm1.ComboBox2.AddItem objExcel.Worksheets(I).name
Next
UserForm1.ComboBox2.ListIndex = 0
end with
leZeile = 0
leSpalte = 0
I = 0
objExcel.EnableEvents = False
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.Close
objExcel.Quit
objExcel.EnableEvents = True
objExcel.DisplayAlerts = True
Set objExcel = Nothing
Set objSheet = Nothing
else
Msgbox "Datei nicht vorhanden"
end if
end if
'hier wird dann mit den Daten aus dem Array die ComboBox1 befüllt
UserForm1.ComboBox1.Style = fmStyleDropDownCombo
With UserForm1
.ComboBox1.clear
.ComboBox1.AddItem "...etwas auswählen"
.ComboBox1.ListIndex = 0
End With
For I = LBound(arrTestBGQCB) To UBound(arrTestBGQCB)
UserForm1.ComboBox1.AddItem arrTestBGQCB(I, 1)
Next I
UserForm1.ComboBox1.Style = fmStyleDropDownList
End sub
hier die Datei dazu https://www.herber.de/bbs/user/158255.xlsm