Excel VBA - Menu Items [Résolu]

Signaler
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour et que 2008 vous apporte ce que 2007 aura oublié de vous laisser

Je développe un outil sous Excel qui sera utilisé dans plusieurs pays européens ou Excel sera installé le plus souvent dans la langue du pays
Je dois supprimer certaines options de menu contextuel mais j'ai un petit soucis pour gérer dans différents langages
Si je liste en utilisant
   CommandBars("Cell").Controls(I).Caption j'obtiens l'intitulé en francais

Y a-t-il une codification générique de ces options ?

Merci de votre aide

 Cliquer "Réponse Acceptée"
Partageons Notre Savoir & Nos Acquis - JML

3 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Voici ce que j'utilise
lngLangue = Application.International(xlCountrySetting)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Salut JML,

Comme le Caption est créé dans ton code, il te faudra donc le modifier à l'ouverture du fichier et/ou partout où tu le définis explicitement.

Il faudrait que tu crées une feuille masquée dans laquelle tu inscris tous les Captions en colonne B avec un Index en colonne A, disons. Sous VB6 on a la possibilité d'utiliser les fichiers Ressources qui sont très utilies dans ces cas-là, mais pas sous Excel... La feuille cachée pourra quand même être utilisée de la même façon.

Tu pourrais alors te créer une Function, disons GetCaption(IndexDeMonMenu...)
Si tu as 10 Captions différents, tu auras 10 lignes de 1 à 10 en français, disons. Tu crées 10 autres lignes de 11 à 20 pour l'anglais, 21 à 30 pour l'espagnol ... Puis finalement tu utlises des constantes (0, 10, 20, ...) déclarées en Public dans un module.
Donc, dans ta Function GetCaption, tu utilises ces contantes pour inscrire le bon Caption. (Français 0....Anglais 10....Espagnol = 20....)If Langage 1 then Langue Anglais
ABC.Caption = le menu de la ligne (IndexDeMonMenu + Langue )  '1+10

Ne reste qu'à trouver un moyen de déterminer le langage à l'ouverture et définir quelle constante tu utiliseras durant la session. Tu peux regarder sous Application.International. Je m'en sers pour les versions françaises (2) et anglaises (1), mais je ne connais pas la valeur des autres langues...(?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA.
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Salut MPi,Merci mais en fait c'est ce que je voulais éviter en espèrant qu'il exisreait quelque chose dé paramètré dans VBA de la mêm fàçon que pour les standadrs Copier Copy ; Couper Cut ; Etc...
En fait j'ai éluder en donnant la correspondance Anglais/Langue utilisateur dans le Guide Utilisateur
Merci encore et merilleurs voeux pour 2008
 Cliquer "Réponse Acceptée"
Partageons Notre Savoir & Nos Acquis - JML