1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Option Explicit
Sub ShowUsf()
Dim Language As String
With usfMultilanguages
.cboLanguage.List = Range("t_languages[Language]").Value
.Show
Language = .cboLanguage.Value
End With
Unload usfMultilanguages
MsgBox getText("AlertMsg", Language)
End Sub
Sub CreateCommandbar(Language As String)
Dim cb As CommandBar
Dim Ctrl As CommandBarControl
Dim Cell As Range
Dim Caption As String
CommandBars("Test").Delete
Set cb = CommandBars.Add("Test", msoBarPopup)
For Each Cell In Range("t_Controls[id]")
Set Ctrl = cb.Controls.Add(msoControlButton)
With Ctrl
.Caption = getText(Cell.Value, Language)
.OnAction = Cell(1, 3).Value
End With
Next
End Sub
Function getText(ByVal ID As String, Language As String) As String
Dim Formula As String
Formula = "index(t_texts[Text],match(1,(t_texts[id]=""{id}"")*(t_texts[language]=""{language}""),0))"
Formula = Replace(Formula, "{id}", ID, , , vbTextCompare)
Formula = Replace(Formula, "{language}", Language, , , vbTextCompare)
getText = Evaluate(Formula)
End Function |
Partager