Faire des liens vers feuilles masquées

celvire4 Messages postés 14 Statut Membre -  
JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai besoin de votre aide pour réaliser une macro qui permettra de faire des liens à partir de la page intitulée "sommaire" vers des feuilles masquées.

Sur la page "sommaire", j'ai 35 liens (23 sous forme de "forme" et 12 sous forme de texte) qui redirigent vers 35 feuilles différentes (toutes sont nommées différemment).

En plus de faire des liens vers ces feuilles masquées, j'aimerais que les feuilles se ferment une fois que l'utilisateur clique sur le lien (de la feuille ouverte) qui redirige vers la feuille "sommaire". :S :S

Un peu compliqué, je vous l'accorde.

Je suis perdue, perdue... et j'ai vraiment besoin de votre précieuse aide.

Un grand merci,

Celvire4

6 réponses

  1. gb
     
    Bonsoir,
    Tu peux affecter une macro à tes formes :
    par exemple sheets("ccc").visible = true
    sheets("ccc").activate pour aller sur tes feuilles cachées
    Pour chaque feuille que tu veux cacher lors du retour vers sommaire tu affectes une macro à l'événement worksheet.desactivate
    Me.visible = false
    et ton onglet sera caché lorsque tu cliqueras sur le bouton de retour vers le sommaire

    Gilles
    1
    1. celvire4 Messages postés 14 Statut Membre
       
      Bonjour Gilles,

      Merci pour cette réponse, seulement je ne comprends pas comment on peut affecter une macro à une forme...(je n'ai pas du tout de compétence en la matière)

      Merci pour ce retour.
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Personnellement je ne vois pas l'intérêt de faire une macro pour ça, puisque c'est à faire une fois et c'est définitif.
    Tu iras beaucoup plus vite à les faire à la main. 35 liens ce n'est pas la mer à boire...
    Seul le reste est à faire en macro

    eric

    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
    Merci
    0
    1. celvire4 Messages postés 14 Statut Membre
       
      Bonjour Eric,

      Merci pour ce retour, cependant je pense que vous n'avez pas compris l'objet de ma demande. Les liens sont déjà existants (70 au total) et pour faciliter la navigation pour les utilisateurs, je souhaite masquer les nombreuses feuilles et les ouvrir à partir du "sommaire" en cliquant sur un lien.

      Exemple :
      Sur la page sommaire , l'utilisateur clique sur le lien "feuil1", la feuille masquée "feuil1" s'ouvre et pour revenir au sommaire, il clique sur le bouton "sommaire" qui se trouve sur la "feuil1", la "feuil1" se ferme... et ainsi de suite pour toutes les autres feuilles

      Merci et bonne journée
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonsoir,

      Ok. Dans ce cas édite ton titre.
      eric
      0
  3. GB
     
    Bonjour,
    je ne comprends pas que SuperEric n'est pas donné la solution.
    Pour répondre à ta question, lorsque tu insères une forme tu peux cliquer à droite et normalement tu peux affecter une macro.
    Si tu as besoin, on peut reprendre cette discussion.

    Gb
    0
  4. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonjour à tous,

    Une proposition pour répondre à ce que j'ai cru comprendre de ton sujet.
    Tu trouveras un fichier en fin de message pour que ça te semble moins difficile.

    En tout cas, le principe que j'ai retenu, c'est l'approche macro de GB avec :
    1) des macros évènementielles derrière chaque feuille pour gérer les appels de liens hypertexte (ça, c'est pour la feuille sommaire) et le retour au sommaire (pour chaque autre feuille masquée).
    Ces retours peuvent s'effectuer par le lien sommaire ou pas clic sur l'onglet sommaire.
    2) une macro dans un module pour gérer tous les objets de la feuille sommaire.

    L'évènementiel de la feuille sommaire est :
    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    a = Target.SubAddress
    a = Left(a, InStr(1, a, "!") - 1)
    Sheets(a).Visible = True
    Sheets(a).Activate
    End Sub

    L'évènementiel des feuilles masquées sera :
    Private Sub Worksheet_Deactivate()
    Me.Visible = False
    End Sub

    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    a = Target.SubAddress
    a = Left(a, InStr(1, a, "!") - 1)
    Sheets(a).Visible = True
    Me.Visible = False
    Sheets(a).Activate
    End Sub
    Là, on gère le clic sur l'onglet sommaire via Worksheet_Deactivate() et le retour par le lien sommaire via Worksheet_FollowHyperlink(ByVal Target As Hyperlink)


    J'ai ajouté des macros pour tout montrer ou tout masquer. Ca peut être utile vu qu'on joue à cache-cache avec les feuilles selon que les évènements sont autorisés ou pas.

    le classeur exemple : https://www.cjoint.com/?DAseknSJ8rg

    J'ai choisi des noms standards Feuil1, Feuil2, ..... Feuil5. A adpater donc.

    Cordialement
    0
    1. News8319
       
      Salut JvDo,

      J'ai le même besoin que Celvire.

      Pourrais-tu remettre en ligne le fichier car il n'est plus disponible. Merci beaucoup
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gb
     
    Bonjour,
    JvDo, je pense que vous répondez à la demande.
    C'est ce que j'aurais fait
    Par contre, je voudrais demandé à Celvire4 quel est l'intérêt de cacher les feuilles puisque qu'on pourra y accéder quand même.
    Simple curiosité
    GB
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      @GB
      C'est ce que j'aurais fait
      Je ne comprend pas que tu ne l'aies pas fait...
      eric
      0
  7. celvire4 Messages postés 14 Statut Membre
     
    Bonjour,

    Je vous remercie pour l'ensemble de vos réponses, mais j'ai trouvé une solution alternative sans faire de macro. Pour ce faire il suffit seulement de ne pas afficher la barre des onglets (dans les options du classeur) et le tour et joué.

    Merci à tous et bonne continuation,

    celvire4
    0