Carte interactive sur excel Mac 2013

Fermé
Limon - 11 juil. 2016 à 18:55
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 11 juil. 2016 à 23:45
Bonjour,
Je dispose d'un fichier sur excel MAC 2013, et cherche à réaliser une carte interactive.
Je dispose d'un fonds de carte dans lequel les pays sont indépendants les uns des autres. Je souhaiterais que la couleur d'un pays soit modifiée par un simple clic de ma souris.

J'ai essayé la petite macro en VBA suivante:
Sub TEST()
Dim NomShape As String
Dim Shape
NomShape = Application.Caller

For Each Shape In ActiveSheet.Shapes
Shape.Fill.ForeColor.RGB = RGB(0, 0, 250)
Next Shape

ActiveSheet.Shapes(NomShape).Fill.ForeColor.RGB = RGB(0, 200, 0)

End Sub

La première partie fonctionne et tous les pays apparaissent en bleu 'RGB (0, 0, 250) par contre ma macro se bloque dans la 2° partie avec l'application Caller
"NomShape = Application.Caller" apparaissant en jaune

Pouvez vous m'aider SVP

Merci d'avance
A voir également:

2 réponses

tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 033
11 juil. 2016 à 20:35
Bonjour, peux-tu poster ton fichier sinon ce sera trop compliqué pour t'aider
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
11 juil. 2016 à 23:45
Affecte la macro Test à chaque forme et essaie ce code :
Option Explicit
Sub Test()
Dim shp As Shape
Dim appel As Variant
  appel = Application.Caller
  If VarType(appel) <> vbString Then Exit Sub
  With ActiveSheet
    For Each shp In .Shapes
      shp.Fill.ForeColor.RGB = RGB(0, 0, 250)
    Next shp
    .Shapes(appel).Fill.ForeColor.RGB = RGB(0, 200, 0)
  End With
End Sub
Note : Tu ne peux pas exécuter cette macro directement depuis le VBE (appel = Erreur 2023)
0