Faire des liens vers feuilles masquées

celvire4 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
JvDo Messages postés 1978 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

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
celvire4 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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
celvire4 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

Ok. Dans ce cas édite ton titre.
eric
0
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
JvDo Messages postés 1978 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
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
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859 > News8319
 
Bonjour,

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

cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

@GB
C'est ce que j'aurais fait
Je ne comprend pas que tu ne l'aies pas fait...
eric
0
celvire4 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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