Carte Interactive

Bonjour à tous,

Je suis en train de créer des cartes interactives grâce à des conseils que j'ai pu chopper sur d'autres forum. Cependant, j'aimerais ajouter une étape avant cela mais je ne trouve pas comment faire alors que je suis sûr que c'est hyper simple.

Sur ma carte des USA j'ai renommé chaque forme d'Etat par son nom. Quand je sélectionne un Etat, son nom est donc affiché dans la Zone Nom. J'aimerais donc "tout simplement" que lorsque je clique sur un Etat, la feuille portant le même nom s'affiche.

Dans l'exemple en pièces jointes lorsque je clique sur l'Etat d'Alabama, la feuille Alabama s'affiche car j'ai affecté une macro indiquant cela, mais j'aimerais éviter de créer 50 macros (une pour chaque Etat).

J'aimerais également si possible que toutes mes feuilles portant des noms d'Etat soit masqués (sauf celle comprenant la carte complète des US) et ne s'affiche que lorsque que je demande à la voir. Serait-ce possible ?

Je vous ai mis un exemple en pièce jointe. Lorsque je clique sur l'état d'Alabama et que la feuille Alabama n'est pas masqué, aucun problème, mais lorsque je masque la feuille, cela ne fonctionne plus. Je devrais certainement utiliser une fonction autre que Worksheet.

Merci d'avance !

38carte-usa.xlsm (871.77 Ko)

Bonjour klaaus,

revoici votre fichier,

fait le test d'un clic sur Alabama, puis un clic sur l'onglet "Cartes"

ps/ j'ai du dissocier les groupes.

Bonjour

En utilisant l'instruction

Application.Caller

et en affectant chaque forme à la macro "AfficherFeuille"

Voici le fichier modifié

A+

Bonjour klaaus, BrunoM45,

pour ajouter la macro "AfficherFeuille" (une très bonne idée de BrunoM45) à chaque Shapes "État"

fichier joint: https://www.cjoint.com/c/HDzbqEARvvG

Sub affecter_macro()
With Sheets("Liste États")
  For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("Cartes").Shapes(.Cells(i, 1).Value).OnAction = "AfficherFeuille"
  Next
End With
End Sub

Ca marche parfaitement, merci à vous tous !

Rechercher des sujets similaires à "carte interactive"