HyperLien d'une liste des feuilles du classeur

Bonjour,

Je souhaite créer une liste verticale de mes onglets avec un hyperlien qui redirige vers la bonne feuille.

Je ne souhaite pas passer par VBA.

Pour cela je passe par créer un nouveau nom dans le gestionnaire de nom que je nomme NO: NO=TRANSPOSE(LIRE.CLASSEUR(1))

Ensuite je selectionne ma plage de cellule ou je veux mettre la liste de mes onglet et je met la formule:

=LIEN_HYPERTEXTE("[NomClasseur.xlsx]STXT(NO;40;99)!C5";STXT(NO;40;99))

Cela me renvoi bien un tableau avec les noms des onglets mais la reference ([NomClasseur.xlsx]STXT(NO;40;99)!C5) n'est pas valide. je ne sais pas si c'est la syntaxe ou l'impossibilité d'utiliser une formule pour la référence.

Merci pour vos lumières!

11test.zip (820.67 Ko)

Bonjour,

Je ne sais pas s'il est indispensable de préciser le nom du classeur. Pouvez-vous essayer comme ceci :

=LIEN_HYPERTEXTE(INDEX(STXT(NO;40;99);1)&"!C5";STXT(NO;40;99))

Je viens d'éditer la formule. Pour l'instant, elle est censée renvoyer vers la première feuille de la liste (du fait du INDEX(...;1))

Cdlt,

Merci pour la réactivité!
Lorsque je copie colle la formule dans une cellule, il me dit qu'il est impossible d'ouvrir le fichier spécifié, de plus, rien n'apparait dans la cellule (photo ci-dessous: voir cellule selectionnée et formule)

image

En revanche, lorsque je remplace la partie "emplacement lien" de l'hypertexte par : INDEX(STXT(NO;40;99);1)&"!C5" il me renvoi bien la première feuille. Par contre lorsque je fait ctrl+Maj+Entrée pour valider ma matrice il n'y a que la première feuille qui apparait.

image

Message pour les 2 cas:

image

Peut etre que cela peut fonctionner avec une fonction "indirect" mais je ne trouve pas non plus la solution en utilisant cette formule (syntaxe surement)

Oui, j'ai pensé à INDIRECT et j'ai modifié ensuite...

A essayer :

=LIEN_HYPERTEXTE(INDEX(NO;1)&"!C5";STXT(NO;40;99))

ou

=LIEN_HYPERTEXTE(INDIRECT(INDEX(NO;1)&"!C5");STXT(NO;40;99))

Tu peux essayer aussi en remplaçant NO par le STXT(NO;40;99).

Si ça bloque toujours, il pourrait être plus simple de joindre une version simplifiée du fichier.

Et c'est normal qu'il n'y ait que la première feuille, c'est dû au 1 dans le INDEX. Cela renvoie la première valeur de la liste. Mais comme je ne sais rien du fichier, je ne sais pas comment rendre ça dynamique. Mais si tu écris en A1 à Ax les valeurs 1 à x, alors, tu peux remplacer la formule par :

=LIEN_HYPERTEXTE(INDEX(NO;A1)&"!C5";STXT(NO;40;99))

En propageant vers le bas, ça donnera toutes les feuilles.

Cdlt,

Bonjour,

J'ai essayé avec les formule que vous m'avez conseiller, j'ai aussi essayer de les modifier en remplaçant NO par le STXT(NO;40;99) sans succès.

Ci dessous un fichier simplifié

5test.xlsm (24.42 Ko)

Cordialement

Bonjour,

Ca marche avec cette formule :

=LIEN_HYPERTEXTE("[Test.xlsm]'"&INDEX(STXT(NO;12;99);LIGNE())&"'!C5";INDEX(STXT(NO;12;99);LIGNE()))

Et en enlevant l'apostrophe du premier nom d'onglet (sinon, ça bloque).

La formule est à saisir en A1 et à faire glisser car LIGNE() renvoie le numéro de la ligne en cours et on demande, avec la fonction INDEX, chaque élément de la matrice contenant les 5 noms de feuille. Sinon, Il faudra mettre dans une autre colonne (en B par exemple) le numéro d'index de la feuille (1 en B1, puis 2 en B2, ...) à côté de son nom et y faire référence dans la formule. Exemple :

=LIEN_HYPERTEXTE("[Test.xlsm]'"&INDEX(STXT(NO;12;99);B1)&"'!C5";INDEX(STXT(NO;12;99);B1))
11test.xlsm (20.37 Ko)

Cdlt,

Super!

merci beaucoup pour votre aide!

Rechercher des sujets similaires à "hyperlien liste feuilles classeur"