Bouton de UserForm mis en variable
bonjour,
myope, je n'ai pas vu traité ce sujet, et je ne trouve pas dans la littérature.
prob:
sur une feuille 'feuil1' de classeur (XL 2003-2007), j'ai un bouton 'Btn'.
En cliquant dessus, j'appelle un Userform, qui se nomme bêtement 'UserForm1'.
Ce Userform contient des boutons d'actions. Leur légende (caption) est en français.
Sur la feuille 'feuil2' du même classeur, j'ai des listes de mots, qui représentent les termes de toutes les legendes des boutons du Userform:
colonne 1 => francais
colonne 2 => allemand
colonne 3 => anglais
Or, sur la feuilll 'feuil1', j'ai trois boutons 'francais', 'allemand' et 'anglais'.
En appuyant sur l'un des trois, les legendes devraient changer dans le userform:
exemple
'ouvrir fichier courant' deviendrait 'Open current file', etc...
Remarque :
je souhaite que les boutons soient et restent sur la feuille 'feuil1', car j'ai d'autres Userforms en cours.
Question:
Quelle est la syntaxe depuis les trois boutons de langues la feuil 'feuil1' qui permettrait de faire changer la légende des boutons du Userform, en posant que les noms des boutons seront dans une variable, puisque je vais boucler chaque liste de la colonne de langue choisie.
ex bidon :
choix du Userform k du classeur
for i....'pour i legendes à changer dans le Userform
prendre item(i) de la colonne j de la feuil2
changer la legende du bouton(i) du userform(k)
next i 'boucler
merci (développement freelance pour une Société)
Affectation de valeur LAbel à un controle de Userform
Merci à vous,
Ca avance bien, il me reste l'affectation de valeur.
Question après différents tests:
Comment affecter une valeur 'trad' à un contrôle de Userform ?
J'ai tenté ceci:
Code:
VBA.UserForms.Add(U & "." & typeComposant) = trad
où U = "Userform" & indice
et typeComposant = Nom du bouton (dans ce cas)
trad = "Open File Only", je mets la traduction de "Ouvrir le fichier seulement" qui est la légende du bouton.
Faut-il explicitement anoncer entre U et typeComposant, le bouton , et comment, car 'CommandButton' ne donne rien , comme ceci:
Code:
VBA.UserForms.Add(U & "." & "CommandButton." & typeComposant) = trad
Affectation avec ou sans lecture
Pour simplifier et etre clair:
J'ai un classeur ouvert avec une feuille 'feuil1' qui possède 3 boutons 'francais','anglais' et 'allemand'.
Lorsque je clique sur l'un de ces 3 boutons, le code change les légendes des boutons du 'Userform' que j'ai créé, soit les boutons ont des légendes en francais si j'ai cliqué francais, allemand si j'ai cliqué sur allemand, soit anglais si j'ai cliqué anglais.
L'idée,c'est de lire des colonnes d'une feuil2 du classeur dans laquelle il y a les traductions des légendes.
Le problème est de savoir comment affecter ces légendes aux boutons du userform ?