XL 2010 Cellule avec lien hypertexte par reconnue comme cellule hypertexte

CharlesX

XLDnaute Nouveau
Bonjour

J'explique ce titre quelque peu déroutant
Le but de mon fichier est d'ouvrir une url à partir d'un bouton
L'url est en partie alimentée par le contenu d'une cellule saisie par l'utilisateur

Ex:

A1:vide, définie par l'utilisateur
B1: www.XXX.fr
C1: remplace XXX par A1
D1: LIEN_HYPERTEXTE de C1

Apres avoir validé "google" dans A1, "www.google.fr" s'ouvre bien en cliquant sur D1

Je voudrais faire un bouton avec une macro pour faire comme si l'on cliquait sur D1

Je me casse les yeux et la tete sur internet et ce que j'ai l'impression de comprendre c'est que la cellule D1 n'est pas reconnue comme cellule hypertexte:

Un bouton avec la macro test

Sub Test()
DeclencheLien Range("D1")
End Sub


Sub DeclencheLien(Cellule As Range)
'Vérifie si la cellule contient un lien
If Cellule.Hyperlinks.Count = 0 Then
MsgBox "il n'y a pas de lien hypertexte dans la cellule " & Cellule.Address
Else
'Déclenche le lien
Cellule.Hyperlinks(1).Follow NewWindow:=True
End If
End Sub

me renvoie le message "il n'y a pas de lien hypertexte dans la cellule"

Si je lance cette meme macro sur B1, j'arrive bien sur www.XXX.fr

J'ai egalement une erreur 9 l'indice n'appartient pas à la selection si je force la verification en modifiant
If Cellule.Hyperlinks.Count <> 0 Then...

J'arrive à la conclusion que la fonction LIEN_HYPERTEXTE ne fait pas de la cellule un lien hypertexte...

En espérant avoir été précis
Merci de votre aide

Cdt
 

eriiic

XLDnaute Barbatruc
Bonjour,

valide au moins un lien correct en C6 pour avoir le souligné bleu d'un lien (fait).
Saisis google en A6 et clique sur ton bouton.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s As String
    If Target.Column = 1 Then
        Application.EnableEvents = False
        s = Replace(Target.Offset(, 1), "XXX", Target.Value, , , vbTextCompare)
        Target.Offset(, 2).Hyperlinks(1).Address = "http://" & s
        Target.Offset(, 2).Hyperlinks(1).TextToDisplay = s
        Application.EnableEvents = True
    End If
End Sub
eric
 

Pièces jointes

  • Classeur1.xlsm
    19.3 KB · Affichages: 65

Statistiques des forums

Discussions
312 379
Messages
2 087 761
Membres
103 661
dernier inscrit
fcleves