Re-,
Pour colorer une commune, dans la cellule G31, par exemple, tu peux mettre cette formule :
=INDEX(com!B:B;F31+1)
Tu auras ainsi le nom de la commune sélectionnée dans le menu déroulant.
Afin de remettre l'ancienne commune sélectionnée d'une couleur neutre, j'utilise le "Gestionnaire de noms"
J'insère un "nom", dans ce gestionnaire, et donne comme valeur la cellule sélectionnée.
Lorsque je change de commune, en premier lieu, l'ancienne commune repasse en blanc, puis le nom prend la valeur de la nouvelle commune sélectionnée, et se colorie en bleu
Avec ce code :
Sub Commune()
On Error Resume Next 'ligne à supprimer dès lors que tu auras
'renommé tous les objets
With Worksheets("carte")
If Not IsError([nom_commune]) Then .Shapes([nom_commune]).Fill.ForeColor.RGB = 16777215
ActiveWorkbook.Names.Add Name:="nom_commune", RefersTo:=.Range("G31").Value
.Shapes([nom_commune]).Fill.ForeColor.RGB = RGB(0, 0, 255)
End With
End Sub
Note bien qu'il faudra supprimer la 2ème ligne ("On Error Resume Next"), dès que tu auras renommé tous les objets.
Fichier :