Déclenchement de lien hypertexte dans le même classeur - VBA

Bonjour,

J'essais de passer d'une feuille à l'autre dans un même classeur sans utiliser ni Select, ni Activate.

Mes recherches m'ont menées au lien hypertexte. Méthode qui fonctionne très bien lorsqu'on clique dessus manuellement. Mais, mon problème se situe plutôt au niveau du déclenchement de celui-ci via macro (trop simple sinon )

Ouvrir un autre fichier par macro et lien hypertexte ne pose aucun problème. Le problème se pose uniquement lorsque l'ont cherche a changer de feuille sur un même classeur.

Vous trouverez ci-joint un classeur très simple pour illustrer le problème. Deux feuilles, un lien hypertexte et une macro qui est censée activer le lien hypertexte.

Si quelqu'un trouve une solution (sans Select ni Activate [Edit: et sans cliquer manuellement! ]), je lui voue un culte!

Merci,

Yann

Bonjour,

je n'ai pas de problème avec ta macro. elle fait bien ce qu'elle doit faire.

Pourquoi pas de select ou d'activate ?

Bonjour,

C'est bizarre, je teste avec Excel 2016 et Excel 2007. J'ai beau cliquer sur mon Shape, je reste sur la Feuille 1. Alors que la macro devrait activer la Feuille 2... :/

Les Select et Activate provoquent un scintillement d'écran assez moche. Malgrès un ScreenUpdating = False, aucun changement du paramètre avant la fin de la macro. (Une macro de 3 lignes.. !)

Je cherche donc une alternative qui n'utilise ni l'un ni l'autre pour changer de feuilles.

Yann

Bonjour,

Tu peux tester :

Range("F17").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

En espèrant que cela t'aide ...

Je viens de tester.. ça ne fonctionne pas non plus. :/

James007 de ton coté le click sur le Shape fonctionne avec mon fichier?

L-Yann a écrit :

C'est bizarre, je teste avec Excel 2016 et Excel 2007. J'ai beau cliquer sur mon Shape, je reste sur la Feuille 1

Sauf erreur de ma part, ton lien hypertexte renvoie vers la feuille1 .. "Feuil1!A1".

Cdlt,

Re,

Tout fonctionne normalement ...

Bonjour / Re,

Non, j'ai cru être fou mais j'ai bien vérifié, mon lien renvois vers la feuille 2 => "Feuil2!A1"

C'est frustrant, quand je clique sur la cellule c'est bon, mais quand je lance la macro VBA passe sur la ligne sans erreur. C'est juste que ma ligne de code n'a aucun effet.. :/

Et alors quand je vois que de votre coté tout fonctionne correctement.. :/

Bon.. C'est extrêmement bizarre... Un paramètre / une option a activer au niveau d'excel peut être?

L-Yann a écrit :

Non, j'ai cru être fou mais j'ai bien vérifié, mon lien renvois vers la feuille 2 => "Feuil2!A1"

Oups, c'moi qui dit n'importe quoi

Essaie avec :

Sub hyperlien()

 With ActiveSheet.Hyperlinks(1)

   .Follow NewWindow:=False, AddHistory:=True

    If .SubAddress <> "" Then
     Sheets(Split(.SubAddress, "!")(0)).Select
     Range(Split(.SubAddress, "!")(1)).Select
    End If

 End With

End Sub

Solution trouvé ici (une seule recherche google, premier résultat :3)

J'ai déjà trouvé cette solution, et j'y croyais aussi.

Un problème cependant. Elle utilise Select !

En fait la macro décompose l'adresse de l'hyperlien, et la recompose avec des select. Ce qui en soit n'est pas tellement l'idée d'un Follow simple. Qui je m’entonne toujours, ne fonctionne pas sur mes PC alors qu'il semble fonctionner sur les votre.. :/

Je cherche encore..!

(Mais ouais, cette personne avait exactement le même problème que moi, j'y ai vraiment cru ce matin :/)

Re,

Je ne vois pas d'ou provient le problème sinon ..

je te rassure ton lien hypertexte ne fonctionne pas chez moi non plus (Excel 2010).

Cdlt,

Ahh! Première "bonne" nouvelle! Je ne suis pas le seul a qui ça arrive.

Du coup au vu de l'aspect aléatoire du fonctionnement de cette macro, je ne suis même plus sur que ce soit une bonne idée de chercher à l'utiliser.

Merci de chercher avec moi! (Et de compatir à mon problème! ça fait chaud au cœur! )

L-Yann a écrit :

Ahh! Première "bonne" nouvelle! Je ne suis pas le seul a qui ça arrive.

Du coup au vu de l'aspect aléatoire du fonctionnement de cette macro, je ne suis même plus sur que ce soit une bonne idée de chercher à l'utiliser.

Merci de chercher avec moi! (Et de compatir à mon problème! ça fait chaud au cœur! )

C'est quoi ton objectif final ? Le lien est changeant ? C'est pour mettre le bouton dans plusieurs feuilles ? il y a toujours une solution alternative !

L'objectif final c'est de pouvoir changer de feuille, en faisant diverse vérification de validation de donnée et de mise en page. En sachant que les onglets sont masqués.

La solution retenue c'est d'effectuer les vérif, puis d'utiliser un select pour changer de feuille. Le problème se situe au niveau du select.

Lorsque je lance les verif, aucun problème graphique. lorsque je change de feuille à la main, aucun problème graphique. Mais lorsque je change de feuille en utilisant Select, j'ai un scintillement d'écran malgrès un ScreenUpdating (et une macro de 3 lignes )

L'idée du coup c'est de trouver un process pour changer de feuille qui n'implique ni Select ni Activate. Et qui ne demande pas de cliquer sur l'onglet à la main!

J'avoue être un peu a court d'alternative..

PS: Le lien n'est pas changeant, la feuille cible reste tjr la meme. et oui, c'est un bouton qui est destiné a etre utilisé dans plusieurs feuilles. (une sorte de menu)

Re,

Voilà, peut être une solution ! Créer le lien avant de le suivre

Sub hyperlien()
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        ThisWorkbook.Sheets(ActiveSheet.Index + 1).Name & "!A1", TextToDisplay:="Feuil2!A1"
    ActiveSheet.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub

Moi ca fonctionne ! Ensuite tu même le supprimer avec une ligne de code supplémentaire. Et pour choisir ou il s'implante c'est dans la configuration "Anchor:=".

Dit moi si sa marche,

cdtl,

C'est génial! ça marche aussi de mon coté! Merci beaucoup, tu gères à max!

Qui l'eut cru qu'il faille créer le lien avant de pouvoir le suivre... :/ Excel

Yann

Rechercher des sujets similaires à "declenchement lien hypertexte meme classeur vba"