Macro Afficher/Masquer automatiquement les autres feuilles selon selection

Résolu
Belinos Messages postés 15 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Les macros sont ou , car vous mettez a dispo un fichier xlsx pas xlsm
    0
  2. Belinos Messages postés 15 Statut Membre
     
    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
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
      0
      1. Belinos Messages postés 15 Statut Membre > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        Merci beaucoup pour votre aide!
        ça va me permettre de bien avancer sur mon projet :)
        0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
  5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

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

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