Affectation de liens hypertextes situés sur plusieurs feuilles

Bonjour,

J'ai un problème pour affecter une macro à des liens hypertextes situés sur plusieurs feuilles.

Je veux lancer une macro (voir macro ci-dessous) lorsque je clique sur le lien hypertexte situé sur l'onglet 1 en cellule A2, je veux également lancer la même macro lorsque je cliquerai sur le lien situé sur l'onglet Cible en cellule A7. Le lien est une formule excel =LIENHYPERTEXTE. La cellule ou se situe le lien est fixe, elle ne changera jamais et restera toujours en A2 sur l'onglet 1 et en A7 sur l'onglet cible. La macro comme ci-dessous s'exécute dans un onglet indépendant des deux premiers.

J'ai dans un premier temps essayer d'utiliser l'évènement workbook.followhyperlink mais cela ne fonctionne pas car je crois avoir compris que cet évènement ne reconnait pas une formule =LIENHYPERTEXTE comme étant un lien hypertexte.

J'ai également pensé à utiliser beforeleftclick mais cela dépasse clairement mes faibles compétences en VBA, j'ai également pensé à un beforedoubleclick mais cela me semble non applicable car c'est un lien donc je ne pourrai jamais cliquer deux fois dessus.

Si besoin le nom convivial de la formule hypertexte peut être modifié pour insérer des caractères spéciaux (à la fin car j'utilise déjà les premiers caractères situés avant le "-" avec la macro qui doit être exécutée).

Enfin si c'est possible j'aurai besoin d'exécuter une deuxième macro sur des liens hypertextes situés dans des cellules fixes différentes mais toujours sur plusieurs onglets.

Merci pour votre aide et vos idées.

Blaise

Sub Essai()
'
x = Sheets("V1").Range("D2")

Select Case x

'
Case Is = 11
Sheets("V1").Range("D3").Copy
Sheets("V1").Range("B8").PasteSpecial xlPasteValues
Case Is = 12
Sheets("V1").Range("D3").Copy
Sheets("V1").Range("B9").PasteSpecial xlPasteValues
Case Is = 13
Sheets("V1").Range("D3").Copy
Sheets("V1").Range("B10").PasteSpecial xlPasteValues

End Select

End Sub

7classeur1.xlsm (16.96 Ko)

Bonjour Alaise_Blaise,

Je te joins une version modifiée de ton fichier. J'y ai supprimé les liens hypertexte pour utiliser l'événement "Workbook_SheetBeforeDoubleClick" et :

  • initialiser le n° du tableau associé à la cellule "lien"
  • déclencher la macro "essai" (voir plusieurs macros si besoin)

Regardes si le fonctionnement te convient (et si j'ai bien compris ton besoin ) et n'hésites pas à demander plus d'explications si ce n'est pas clair.

Cordialement,

Yves

Bonjour Yves,

Merci beaucoup pour ta réponse, le résultat est celui souhaité mais je ne comprends pas comment la fonction trouve les cellules sources (voir en bleu) et je comprends pas également comment la fonction fait pour coller la valeur dans l'onglet V1 dans la cellule C2.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If (Sh.Name = "1") Or (Sh.Name = "2") Or (Sh.Name = "Cible") Then
Range("T_ACTIVE").Value = CStr(Left$(Target.Value, 3))
Essai
Cancel = True
End If

En te remerciant par avance

Re-Bonjour Alaise_Blaise,

J'ai été un peu trop vite !

Dans le classeur, la cellule C2 de l'onglet "V1" est nommée "T_ACTIVE", cellule que tu utilises pour stocker les 3er caractères du lien déclencheur (1.1 Tableau, 2.1 Tableau, ...). Dans la cellule D2 adjacente tu as écrit la formule qui récupère la référence numérique de ce tableau (11, 12, 21) qui est utilisée par la macro "Essai".

La procédure "Workbook_SheetBeforeDoubleClick" est déclenchée lorsque tu double-clique sur une cellule quelconque d'une feuille quelconque, d'où la nécessité de vérifier que l'événement est bien déclenché par une feuille précise ("1" ou "2" ou "Cible"), c'est le rôle du test "If (Sh.Name = "1") Or (Sh.Name = "2") Or (Sh.Name = "Cible") Then", la variable "Sh" étant la feuille déclenchant l'événement. Ce test n'est pas suffisant, car si l'événement est bien déclenché par une des feuilles voulues, il faut aussi vérifier que le double-clic a bien été fait dans une cellule identifiant le nom du tableau, c'est ce dernier test que j'ai omis , désolé je te renvoies une nouvelle version commentée avec les explications dans le code associé à "WorkBook".

Désolé, je n'arrive pas à joindre le fichier (message d'erreur "Service indisponible"), je retente un peu plus tard ...

Cordialement,

Yves

Re Yves,

merci pour les modifications beaucoup plus clair pour comprendre le fonctionnement, par contre comment tu fais pour désigner LH_T1 et dire a excel qu'il s'agit de la cellule A2 (idem pour LH_T2 et LH_TCIBLE) ?

image image image

Sorry je viens de trouver.

Merci pour tout

Rechercher des sujets similaires à "affectation liens hypertextes situes feuilles"