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 ?

Merci Job, c'est tout à fait ça !

Lorsque je "demande" un pas-à-pas, c'est tout simplement que je suis incapable d'adapter le fichier que vous m'envoyez, qui dispose de ce dont j'ai besoin, à mon fichier. Je suis nul en vba, c'était à peine si j'étais capable d'ouvrir la fenêtre d'édition VBA avant mon premier post. Du coup, lorsqu'on me donne un code, je sais pas vraiment quoi en faire...je le mets ou ? je fais quoi ? des trucs tellement simples et naturels pour vous mais que je n'ai jamais vu.

Du coup, j'ai exporté le UserForm1 de votre fichier que j'ai importé dans le mien. J'ai créé le même module (je ne sais pas à quoi il sert) ce qui fait que j'ai bien le UserForm qui s'ouvre.

Le problème (oui, ca serait trop beau), c'est que j'ai une erreur lorsque je clique sur le lien présent dans la ComboBox

Erreur d'exécution "1004':

La méthode 'Range' de l'objet'-Global' a échoué

et ca me surligne Application.Goto Reference:=Range(ComboBox1)
lorsque je clique sur débogage.

Une idée ?
En tout cas merci de votre aide :)
 

Int0x

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

C'est étrange car cette erreur dépend de l'onglet cible (en gros, ca le fait pasp our tous :confused: ).

Dans mon fichier (que j'ai vidé et amputé), seul 1 lien sur 3 fonctionne.

D'avance merci ;)

Edit: j'utilise Excel 2003
 

Pièces jointes

  • test.zip
    26.9 KB · Affichages: 21
  • test.zip
    26.9 KB · Affichages: 20
  • test.zip
    26.9 KB · Affichages: 16

job75

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

Re,

Dans l'onglet Sommaire, cellules A4 et A6, le 1er apostrophe ' n'est pas pris en compte dans la ComboBox.

C'est tout à fait normal. Il suffit alors d'écrire 2 fois cet apostrophe.

Fichier joint.

Edit : notez que la macro fait commencer la liste de la ComboBox en A2, vous n'avez rien mis en A2 et A3...

A+
 

Pièces jointes

  • test(1).zip
    25.1 KB · Affichages: 23
  • test(1).zip
    25.1 KB · Affichages: 22
  • test(1).zip
    25.1 KB · Affichages: 24
Dernière édition:

Int0x

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

Merci pour le temps que vous passez sur mon problème Job.
Je me permets de rajouter un "soucis": comment faire pour changer le nom du lien ? Si je me modifie le nom du lien (comme je ferais habituellement), je me retrouve avec la même erreur.

Que dois-je taper pour modifier l'affichage du lien 'tata yoyo'!A1 par Toto ? Sachant que c'est exactement ce que je souhaite, seulement un problème esthétique d'affichage de nom.

Merci :p
 

job75

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

Re,

Si la colonne A de Sommaire ne contient plus des références, il faut modifier la 1ère macro de l'UserForm :

Code:
Private Sub ComboBox1_Change()
Dim lig As Variant
With Sheets("Sommaire")
  lig = Application.Match(ComboBox1, .Columns("A"), 0) 'c'est la fonction EQUIV
  If IsNumeric(lig) Then Application.Goto Reference:=Range(.Cells(lig, "A").Hyperlinks(1).SubAddress)
End With
End Sub

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

Un conseil : pour comprendre VBA, commencez par des choses simples plutôt que de vous lancer bille en tête sur des problèmes complexes.

D'autant que vous les compliquez au fur et à mesure qu'on vous fournit des solutions.

A+
 

Pièces jointes

  • test(2).zip
    26.6 KB · Affichages: 14
  • test(2).zip
    26.6 KB · Affichages: 14
  • test(2).zip
    26.6 KB · Affichages: 16
Dernière édition:

job75

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

Re,

Et puis dans le fichier test.xls vous aviez oublié de mettre les macros Activate et Deactivate.

J'ai remis celles-ci, un peu plus simples, dans ThisWorkbook :

Code:
Private Sub Workbook_Activate()
UserForm1.Show
End Sub

Private Sub Workbook_Deactivate()
UserForm1.Hide
End Sub

A+
 

Pièces jointes

  • test(3).zip
    27.2 KB · Affichages: 28
  • test(3).zip
    27.2 KB · Affichages: 24
  • test(3).zip
    27.2 KB · Affichages: 23

Int0x

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

Merci Job, c'est parfait.

Je tenais à revenir rapidement sur ce passage
Un conseil : pour comprendre VBA, commencez par des choses simples plutôt que de vous lancer bille en tête sur des problèmes complexes.

D'autant que vous les compliquez au fur et à mesure qu'on vous fournit des solutions.

que je trouve un peu paradoxal avec vos précédents propos
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.

Pour faire simple, je me penche actuellement sur le VBA car je suis tout simplement confronté à une situation où j'en ai besoin. Alors certes, j'ai sûrement le tort de ne pas avoir cette passion ou le temps de m'y mettre sérieusement. C'est pourquoi je me tourne vers un forum d'experts en la matière, tout en cherchant à comprendre rapidement ce que je fais. Je pensais que ça serait plus apprécié que de bêtement venir pomper et revenir pour dire que ça marche pas.

Autrement, je ne pense pas compliquer au fur et à mesure...je fais juste un retour des écarts par rapport au "cahier des charges". Désolé de ne pas avoir été clair à la base.

En tout cas merci, c'est tout à fait ce qu'il me faut (même si j'ai rien compris quant aux macros oubliées, je regarderai ca demain avec le fichier sous les yeux).

Int0x
 

Discussions similaires

Réponses
11
Affichages
601

Statistiques des forums

Discussions
315 080
Messages
2 116 018
Membres
112 637
dernier inscrit
pseudoinconnu