Oui, ok j'ai testé votre fichier : on clic sur anglais il change de couleur, on clic sur italien il change de couleur mais anglais ne reviens pas à la couleur neutre...
Le principe : il y en a deux : soit on met en mémoire le nom du bouton "dernier cliqué" comme cela lors d'un nouveau clic on fait dernierboutoncliqué = couleur neutre, mais c'est "compliqué", soit on part du principe que l'on passe tous les boutons en couleur neutre et ensuite on colorie celui qui vient d'être cliqué.
L'idéal est d'avoir dans le noms des boutons sous Excel un préfixe qui permet de les différencier des autres boutons qui n'ont pas a subir cette mise en couleur neutre, dans votre cas ce pourrait être Lang : LangFr, LangES, LangEn, LangAl.
Une routine de mise au neutre qui scanne tous les shapes de la feuille mais qui recherche le préfixe :
For Each Sh In Activesheet.Shapes
If Left(Sh.Name,4) = "Lang" Then Sh.Fill.ForeColor.RGB = RGB(255, 125, 200)
Next
Ensuite vous mettez en couleur le bouton cliquer, on récupère son nom avec Application.Caller :
Activesheet.Shapes(Application.Caller).Fill.ForeColor.RGB = RGB(0, 255, 0)
@ bientôt
LouReeD