Macro Afficher/Masquer automatiquement les autres feuilles selon selection [Résolu]

Signaler
Messages postés
10
Date d'inscription
mardi 17 novembre 2020
Statut
Membre
Dernière intervention
22 décembre 2020
-
Messages postés
15519
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 janvier 2021
-
Bonjour,

Je début en VBA j'ai des difficultés à trouver un solution alternative qui fonctionne pour mon fichier.
J'essaye de créer un classeur contenant des tableaux de données d'une région par départements. Le but étant d’accéder à ces différents tableaux en cliquant sur le département choisi (carte reproduite au format objet).
Le problème est que je n'arrive pas à seulement faire afficher la feuille qui m'intéresse tout en masquant les autres inutiles puis à reproduire l'action (va et vient entre les départements) sans avoir d'erreur de type 1004 dû au fait que les feuilles sont masquées.

https://www.cjoint.com/c/JLskW3iolga

Merci pour votre aide !!

6 réponses

Messages postés
15519
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 janvier 2021
1 435
Bonjour,

Les macros sont ou , car vous mettez a dispo un fichier xlsx pas xlsm
Messages postés
10
Date d'inscription
mardi 17 novembre 2020
Statut
Membre
Dernière intervention
22 décembre 2020

Bonjour,

oui pardon je me suis trompé de format de fichier

https://www.cjoint.com/c/JLsmYKm0Rza
Messages postés
7210
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 janvier 2021
601
Bonjour,

Ton classeur est inexploitable!

voir ceci:

http://boisgontierj.free.fr/pages_site/lesimages.htm#CarteFranceDep

en particulier cela:

Pour déclencher une macro sur le clic d'un shape:

Voilà
Messages postés
10
Date d'inscription
mardi 17 novembre 2020
Statut
Membre
Dernière intervention
22 décembre 2020

Effectivement, je ne sais pas ce que j'ai fait avec la fonction partager d'Excel...
je l'ai refait ça devrait fonctionner :

https://www.cjoint.com/c/JLsokiFnDpa
Messages postés
7210
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 janvier 2021
601
C'est tout simple:

Voici les macros:

Sub deuxsevres()
boucle
 Sheets("Deux-sèvres").Visible = True
 Sheets("Deux-sèvres").Activate
End Sub
Sub charente()
boucle
 Sheets("Charentes").Visible = True
   Sheets("Charentes").Activate
End Sub
Sub boucle()
'Déclare la variable objet Worksheet
Dim Ws As Worksheet
'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
'en compte.
'ThisWorkbook correspond à l'objet classeur contenant la macro
For Each Ws In ThisWorkbook.Worksheets
   If Ws.Name <> "Région" Then
   Ws.Visible = xlSheetVeryHidden
    End If
Next Ws
End Sub


ensuite tu te positionnes sur la shape et clic droit: affecter une macro et tu sélectionnes la macro correspondante

Voilà

+ Le Pivert
Messages postés
10
Date d'inscription
mardi 17 novembre 2020
Statut
Membre
Dernière intervention
22 décembre 2020
>
Messages postés
7210
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 janvier 2021

Merci beaucoup pour votre aide!
ça va me permettre de bien avancer sur mon projet :)
Messages postés
15519
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 janvier 2021
1 435
Bonjour a tous,

Si les Shappes sont nommees du nom de departement, il y a une seule procedure a affecter a toutes les Shappes.
La dite procedure masquera toutes les feuilles departement et affichera la feuille du nom de la Shappe cliquee
Messages postés
15519
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 janvier 2021
1 435
Bonjour,

Une autre facon de faire avec moins de code.
Votre region n'a pas tous les departements

https://mon-partage.fr/f/03EWSvdD/