Bonjour,
Dans le but de rendre mon application accessible aux utilisateurs de différents pays au sein de la société, je souhaiterai donner la possibilité à l'utilisateur de sélectionner sa langue pour utiliser l'application lors de son identification (via un combobox dans un premier userform "Login").
Explication détaillée de ce que je fais :
Dans un onglet "Languages" seront réunies toutes les langues disponibles pour les utilisateurs :
L'idée est donc de récupérer le contenu de chaque cellule en colonne D et d'y ajouter la traduction à apporter (Colonnes B ou C); ce qui donne :
menu.caption="Menu"
selon le code suivant :
Après ce code test, je récupère bien, en variable string nommée "action", le bout de code que je souhaiterai executer.
Voilà où se trouve le problème :
à la place du test MsgBox, je souhaiterai intégrer une ligne de code disant quelque chose du genre : Call action, afin de traduire chaque élement du userform 1 par 1 lors de l'initialisation.
Cette idée de base me semblait être la façon la plus simple d'initialiser les traductions.
Peut-être avez vous une autre idée, ou me direz-vous que ce que je souhaite est irréalisable..
Merci par avance de votre aide,
D4_
Dans le but de rendre mon application accessible aux utilisateurs de différents pays au sein de la société, je souhaiterai donner la possibilité à l'utilisateur de sélectionner sa langue pour utiliser l'application lors de son identification (via un combobox dans un premier userform "Login").
Explication détaillée de ce que je fais :
Dans un onglet "Languages" seront réunies toutes les langues disponibles pour les utilisateurs :
- La colonne A sert de source au combobox de sélection de la langue lors de l'identification de l'utilisateur.
- Les colonnes B à D seront à renseigner en fonction des userforms, des objets, msgbox, etc.. contenant du texte à afficher selon la langue sélectionnée par l'utilisateur.
- La mention "chosen" s'affiche sous la langue sélectionnée par l'utilisateur pour déterminer la traduction à utiliser durant toute l'utilisation de l'application.
- Les colonnes B à D seront à renseigner en fonction des userforms, des objets, msgbox, etc.. contenant du texte à afficher selon la langue sélectionnée par l'utilisateur.
- La mention "chosen" s'affiche sous la langue sélectionnée par l'utilisateur pour déterminer la traduction à utiliser durant toute l'utilisation de l'application.
L'idée est donc de récupérer le contenu de chaque cellule en colonne D et d'y ajouter la traduction à apporter (Colonnes B ou C); ce qui donne :
menu.caption="Menu"
selon le code suivant :
VB:
Private Sub UserForm_Initialize()
'Définition langue sélectionnée en Login
Set langue = Sheets("Languages").Cells.Find("chosen", lookat:=xlWhole).Offset(-1, 0)
'Initialisation des textes dans la langue sélectionnée
Dim cel As Range
Dim action As String
For Each cel In Sheets("Languages").Range("d3:d999")
If cel <> "" Then
action = cel & "=" & """" & cel.Offset(0, -2) & """"
MsgBox (action)
End If
Next cel
End Sub
Après ce code test, je récupère bien, en variable string nommée "action", le bout de code que je souhaiterai executer.
Voilà où se trouve le problème :
à la place du test MsgBox, je souhaiterai intégrer une ligne de code disant quelque chose du genre : Call action, afin de traduire chaque élement du userform 1 par 1 lors de l'initialisation.
Cette idée de base me semblait être la façon la plus simple d'initialiser les traductions.
Peut-être avez vous une autre idée, ou me direz-vous que ce que je souhaite est irréalisable..
Merci par avance de votre aide,
D4_