Carte interactive sur excel Mac 2013

Limon -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

  1. tyranausor Messages postés 3501 Date d'inscription   Statut Membre Dernière intervention   2 060
     
    Bonjour, peux-tu poster ton fichier sinon ce sera trop compliqué pour t'aider
    0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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