Menu déroulant d'hyperliens ?

Int0x

XLDnaute Occasionnel
Bonjour à tous,

Avant toute chose, je tenais à remercier et féliciter les personnes qui contribuent à ce forum. C'est génial de voir qu'il existe des personnes qui n'hésitent pas à prendre de leur temps pour partager leurs connaissances: j'espère pouvoir en arriver là un jour ;)

Après cette petite séquence forte en émotion, je me permets de vous exposer mon "problème".

Contexte: je suis en train de réaliser un fichier avec de nombreux onglets, tous liés les uns aux autres. Il est alors difficile et pénible de naviguer d'un onglet à l'autre. Je me suis alors créé un onglet sommaire, avec plusieurs liens hypertextes, renvoyant sur chaque onglet. Ces mêmes onglets disposent tous d'un lien "Retour vers le sommaire", qui est un bête hyperlien vers mon onglet Sommaire.

Objectif: éviter l'étape "retour vers le sommaire". Je souhaiterais pouvoir passer d'un onglet A à un onglet B sans avoir à repasser par l'onglet sommaire (si je suis en A actuellement, je repasse sur le sommaire pour rechercher et cliquer sur le lien m'envoyant vers B).

J'aurais donc souhaité mettre, sur une case en haut de l'écran (type en A1 ou peu importe, mais par là), un menu déroulant qui me permettrait d'afficher tous les liens du classeur. En fait, ca ferait un peu comme les menus que l'on peut trouver sur internet: on ouvre le menu déroulant, on clique sur le lien désiré et celui-ci nous envoie sur la page (l'onglet dans mon cas) désiré.

Je ne sais pas si c'est réalisable, si le sujet à déjà été abordé, si j'ai été assez clair, etc...tant de questions existentielles qui resteront sans réponses pour le moment.

Par avance merci à tous ceux qui se pencheront sur mon cas (*s'allonge sur le divan*),
Int0x

Questions subsidiaires:
  • est-il possible de "faire suivre" ce menu déroulant hyperliens avec la souris ?
  • est-il possible de mettre des couleurs / séparations dans le menu déroulant ?
 

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Salut kjin,

En effet, ca ressemble à ça (je ne connaissais même pas...) mais j'aimerais avoir la même chose dans le classeur, si c'est possible. Beaucoup d'utilisateurs auront accès à ce fichier, très peu connaîtront cette fonction tout bête (j'en suis le parfait exemple !).

Merci.
 
Dernière édition:

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Up de bon matin !
Je viens également de penser que la solution de kjin ne pourrait pas entièrement me satisfaire car certains liens (que je souhaite intégrer dans le menu déroulant) renvoient sur des cellules spécifiques, en milieu de page etc...

D'avance merci et bonne journée :)
 

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Bonjour Boisgontier,

A première vue, cela semble correspondre exactement à ce dont j'ai besoin. Il ne me reste plus qu'à creuser et l'adapter à mon fichier (et surtout comprendre comment ça marche), c'est parfait !

Du coup, je me permets d'ajouter quelques questions:
- ce code prend-t-il tous les liens du fichiers ou peut-on lui définir la liste de lien que l'on souhaite ? Car j'aurai besoin qu'il ne prenne pas certains liens en compte et même si j'y connais rien, on dirait que le code recense tous les liens de tous les onglets ? Or sur mon fichier, certains liens ne sont pas "pertinents" à mettre en "menu". Exemple: est-il possible d'avoir ce userform avec tous les liens issus d'un seul et même onglet (mon sommaire) ?
- est-il possible de renommer le "UserForm1" affiché dans la barre, pour lui donner un autre nom ?
- est-il possible de masquer les "cibles" des liens (dans ton exemple, les Feuil2!A1, etc...) ?
- est-il possible de figer ce UserForm à un seul fichier excel (histoire qu'il n'apparaisse pas sur d'autres fichiers quand je suis amené à switch d'un fichier à l'autre) ?

Désolé de poser des questions qui peuvent sembler bateau pour vous :(
En tout cas, mille merci :)
Int0x
 
Dernière édition:

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Damn ! Je ne m'attendais pas à un retour aussi rapide, du coup je n'aurais pas du éditer mon précédent message pour y ajouter des "demandes". :p
Je ne sais pas si elles ont été prises en compte (visiblement non si je me fie à la box qui reste présente sur tous les fichiers :D ).

J'ai vu le changement du nom (UserForm 1 est devenu Choix lien) ainsi que la disparition des cibles (et l'apparition d'un onglet exceptions :confused:). Malgré tout, cela reste très flou pour moi !
Serait-il possible de m'expliquer, à l'occasion, le fonctionnement de ce code plutôt que d'appliquer "bêtement" ce qu'on me donne ? Genre un "pas à pas" ? Ou avant d'arriver à une explication, peut-être devrais-je me tourner vers des tuto expliquant le fonctionnement des ComboBox / userform ?

En tout cas merci du temps passé dessus, j'ai matière à réflexion pour le moment (j'ai 2 codes à regarder, ce qui a changé et tout !).
Int0x

Edit: je viens de comprendre l'onglet Exception, qui en fait recense les liens qui ne devront pas apparaitre dans la box. Ne serait-il pas possible d'avoir cette box listant que les liens d'un seul onglet (sachant que tous les liens devant apparaitre dans cette box sont sur le même onglet !) ? Je suis désolé si je donne les infos dans le désordre ! :x
 
Dernière édition:

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Petit up pour ne pas tomber en page 2 !

- Est-il possible d'avoir cette box pour seulement une plage de données ?
Par exemple: je mets 40 liens en colonne A (donc de A2 à A41), est-il possible d'avoir cette box (je connais pas le nom de cet objet !) uniquement sur cette plage A2:A41 ? Box visible sur tous les onglets du classeur
- Est-il possible de limiter cette box uniquement à ce classeur ?
- Est-il possible d'avoir un petit "pas-à-pas" explicatif du code ?

Merci d'avance :)
 

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Encore moi !
J'ai un peu bidouillé le code sur le fichier fourni plus haut, et avec le code

Code:
Private Sub ComboBox1_Change()
   a = Split(Me.ComboBox1.Column(1), "!")
   Application.Goto Reference:=Sheets(a(0)).Range(a(1))
End Sub
Private Sub UserForm_Initialize()
 m = 0
  For i = 1 To Sheets(1).Hyperlinks.Count
   If Application.IsNA(Application.Match(Sheets(1).Hyperlinks(i).TextToDisplay, [exceptions], 0)) Then
    Me.ComboBox1.AddItem
    Me.ComboBox1.List(m, 0) = Sheets(1).Hyperlinks(i).TextToDisplay
    Me.ComboBox1.List(m, 1) = Sheets(1).Hyperlinks(i).SubAddress
    m = m + 1
   End If
  Next i
End Sub

j'ai vaguement réussi à obtenir un début de ce que je recherche (je le rappelle, toujours sur le fichier fourni...je ne parviens pas à transposer ce code sur mon fichier).

J'ai viré le "For s = ..." qui incrémentait les onglets pour recenser tous les liens du classeur (comme ca, je limite au 1er onglet, mon sommaire).
Je me suis amusé à créer des liens sur l'onglet 1, et ils sont bien pris en compte dans ma box.

Cela dit, j'ai l'impression d'avoir mal expliqué car le code correspond à une demande assez "complexe". Je demande juste une combobox (je sais même pas en faire une :( ), à partir d'une liste de lien dans un onglet, qui me permet de cliquer dessus et m'orienter sur le bon onglet.

Merci !
 

Int0x

XLDnaute Occasionnel
Re : Menu déroulant d'hyperliens ?

Dernier up de la journée dans lequel je synthétise mes besoins:
- une ComboBox allant chercher les diens sur UN seul et unique onglet (nommé Sommaire)
- cette ComboBox me permet de naviguer d'un onglet à l'autre (en cliquant, comme dans l'exemple donné par JB), sur un seul et même classeur (ne plus le voir quand je suis amené à changer de classeur)
- j'aurais besoin de comprendre, même très brièvement, le principe (histoire que je puisse bidouiller par moi-même !)

Note: je suis nul en Excel, ou du moins je me suis jamais vraiment penché "profondément" sur ce soft. J'utilise "combobox" car il me semble que c'est ce que m'a proposé JB plus haut. Je n'ai jamais utiliser de ComboBox, je ne sais d'ailleurs même pas en créer une. Je suis ouvert à tout autre système ;)

Bonne soirée,
Int0x
 

job75

XLDnaute Barbatruc
Re : Menu déroulant d'hyperliens ?

Bonjour Intox, salut JB,

Dans la feuille Sommaire, il suffit de mettre en colonne A les adresses que l'on veut atteindre.

Les liens hypertextes sont parfaitement inutiles, mais je les ai laissés.

Les macros de l'UserForm :

Code:
Private Sub ComboBox1_Change()
Application.Goto Reference:=Range(ComboBox1)
End Sub

Private Sub UserForm_Initialize()
With Sheets("Sommaire")
  ComboBox1.List = .Range("A2", .Range("A65536").End(xlUp)).Value
End With
End Sub

Quant à ceci :

j'aurais besoin de comprendre, même très brièvement, le principe (histoire que je puisse bidouiller par moi-même !)

c'est à vous de dire ce que vous ne comprenez pas car le code est très simple, et y a pas grand'chose à bidouiller.

A+
 

Pièces jointes

  • Navigation(1).zip
    13.9 KB · Affichages: 55
Dernière édition:

Discussions similaires

Réponses
11
Affichages
575
  • Résolu(e)
Microsoft 365 Menu déroulant
Réponses
4
Affichages
667

Statistiques des forums

Discussions
314 659
Messages
2 111 623
Membres
111 236
dernier inscrit
vinthi