Renvoyer vers une feuille en récupérant son nom dans une cellule

Bonjour à tous !

Je coince sur un épineux problème dont je n'ai pas trouvé de solution malgré mes recherches.

J'ai un classeur excel à plusieurs feuilles. Disons une feuille "Sommaire" et trois feuilles "F1", F2" et "F3".

J'aimerai pouvoir créer un lien depuis une cellule de mon sommaire disons vers la feuille "F1". J'aimerai que le lien se fasse lorsque l'utilisateur clique sur une cellule qui s'appelle justement "F1".

L'idée derrière : est-il possible de renvoyer vers une feuille en récupérant le nom de celle-ci dans une cellule ?

Je sais que j'ai la possibilité d'affecter manuellement à la cellule en question un lien vers la feuille F1.

Mais dans la réalité, j'ai beaucoup de feuille, et j'aimerai simplement écrire un sommaire qui puisse renvoyer directement vers les feuilles lorsque l'on clique sur leur nom dans les cellules du sommaire. Est-ce possible ? Via formule/lien/VBA

Merci d'avance :) !

Guillaume

Bonjour,

Utilisez les liens hypertextes comme ceci:

snowman73

Cdlt

Bonjour,

Merci de votre retour.

Justement l'idée ici est de ne pas à assigner manuellement la feuille via le lien hypertexte, mais d'arriver à récupérer la valeur de la cellule (par exemple F1 dans ce cas ci) pour qu'en cliquant sur la cellule elle renvoie vers la feuille F1. (car j'ai en gros 250 feuilles), j'aurai aimé automatisé le renvoi de F1 à F250 en récupérant le nom de la feuille dans la cellule.

Je ne sais pas si je suis clair ?

Merci d'avance,

Bonjour,

Alors si j'ai bien compris, dans l'exemple suivant , faire un double-clic sur l'une des cellules jaunes pour ouvrir la feuille correspondante (attention, je n'ai mis que 4 feuilles, à vous de l'adapter à votre fichier)

le code utilisé dans le module de la feuille

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Sortie
    Application.EnableAnimations = False
    If Not Intersect(Target, Range("A1:A250")) Is Nothing Then
        Sheets("F" & Target.Row).Select
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Bonjour,

Excellent merci ! On s'approche de mon besoin, la seule différence est qu'ici vous récupérer le numéro de la ligne et vous l'associez à la lettre F (malin !), pour faire les noms de feuille F1, F2, F3 etc...

En réalité, dans mon classeur le nom des pages sont des "codes" plus complexe (BAT2, INFRA4, GEN8, ...), et ce n'est pas une suite logique (F1,F2,F3 etc...).

Du coup il faudrait pouvoir récupérer dans la cellule le nom de la feuille (type "BAT2" par exemple) pour envoyer vers la feuille du même nom. Voyez-vous une solution ?

Merci encore,

Bonjour,

Alors ceci:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Sortie
    Application.EnableAnimations = False
    If Not Intersect(Target, Range("A1:A250")) Is Nothing Then
        Feuille = Cells(Target.Row, "A")
        Sheets(Feuille).Select
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Bonjour tout le monde !

Petite version sans macro :

=LIEN_HYPERTEXTE("["&STXT(CELLULE("nomfichier";A1);CHERCHE("[";CELLULE("nomfichier";A1))+1;CHERCHE("]";CELLULE("nomfichier";A1))-CHERCHE("[";CELLULE("nomfichier";A1))-1)&"]"&A2&"!A1";"ouvrir")
image

Excellent !

ça répond parfaitement à mon besoin.

Pour que je comprenne le fonctionnement en détail, pourrais-tu détailler la séquence de la formule sans macro @joyeuxNoel ?

Merci !

Pfiou, potentiellement assez long si on veut bien faire les choses.

Basiquement, la fonction lienhypertexte permet de renvoyer à un autre emplacement. Ça peut ouvrir un fichier externe d'un autre format, ça peut ouvrir un autre fichier excel, et ça peut également te permettre de te déplacer à un autre endroit. Tu peux regarder l'aide de Microsoft à ce sujet.

Pour aller dans un autre onglet du même document, il faut tout de même lui donner le nom du fichier. Ce que fait la fonction

STXT(CELLULE("nomfichier";A1);CHERCHE("[";CELLULE("nomfichier";A1))+1;CHERCHE("]";CELLULE("nomfichier";A1))-CHERCHE("[";CELLULE("nomfichier";A1))-1)

Il faut juste rajouter les crochets pour entourer le nom du fichier, et le nom de l'onglet ainsi qu'une cellule.

Ok bien compris, je passe en résolu !

Bonne journée, merci de votre aide à tous les deux

Rechercher des sujets similaires à "renvoyer feuille recuperant nom"