Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Activer ou désactiver un lien hypertexte

7 réponses
Avatar
jp
Bonjour,

Est-il possible d'activer ou de d=E9sactiver un lien hypertexte en
fonction d'un contenu de cellule?
En A2 j'ai un lien hypertexte que je voudrais actif seulement si en A1
le contenu de ma cellule est une x ou X.
Merci des r=E9ponses.
JPierre

7 réponses

Avatar
FFO
Salut à toi

Crées ton lien Hypertexte en A2
Puis mets dans le VBA de ta feuille ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
On Error Resume Next
If Target = "x" Then
ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:="", SubAddress:= _
"" & Range("A2") & "", TextToDisplay:="" & Range("A2") & ""
End If
If Target = "X" Then
Range("A2").Hyperlinks(1).Delete
End If
End If
End Sub

En A1 saisis "x" ou "X"

Celà devrait te convenir

Dis moi !!!!
Avatar
jthillard
Merci FFO,
J'ai peut être omis une précision. Le lien hypertexte doit resté, il
ne faut pas qu'il soit effecé. Il doit être actif si il y a une croix
en A1 en revanche, il doit être inactif s'il n'y a pas de croix.
Dans ta macro que je viens de tester, si la croix est en A1, le lien
ne renvoie pas vers l'adresse souhaitée.
Si la croix n'existe pas en A1, le lien hypertexte est supprimé.
Ce n'est pas du tout ce que je souhaite obtenir.
Désolé.
JPierre
On 27 jan, 10:17, FFO wrote:
Salut à toi

Crées ton lien Hypertexte en A2
Puis mets dans le VBA de ta feuille ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
On Error Resume Next
If Target = "x" Then
 ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:="", SubAd dress:= _
        "" & Range("A2") & "", TextToDisplay:="" & Range("A2") & ""
End If
If Target = "X" Then
Range("A2").Hyperlinks(1).Delete
End If
End If
End Sub

En A1 saisis "x" ou "X"

Celà devrait te convenir

Dis moi !!!!


Avatar
jthillard
FFO, Désolé, j'ai dit une bêtise. je vais encore tester mais à prio ri
croix ou pas croix en A1, le lien est actif dans tous les cas.
Je teste et je te dis un peu plus tard.
JPierre

On 27 jan, 10:17, FFO wrote:
Salut à toi

Crées ton lien Hypertexte en A2
Puis mets dans le VBA de ta feuille ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
On Error Resume Next
If Target = "x" Then
 ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:="", SubAd dress:= _
        "" & Range("A2") & "", TextToDisplay:="" & Range("A2") & ""
End If
If Target = "X" Then
Range("A2").Hyperlinks(1).Delete
End If
End If
End Sub

En A1 saisis "x" ou "X"

Celà devrait te convenir

Dis moi !!!!


Avatar
jthillard
FFO,

Voilà de retour avec un peu de mal. J'ai pour commencé mélangé A2 e t
B1. Alors pardon!
Voilà ce que j'ai constaté:
La macro fonctionne mais il reste un problème tout de même gênant.
J’entre un texte en A2 auquel j’applique un lien hypertexte. Je mets
la macro dans la feuille correspondante. Si je clique en A2 sur le
lien hypertexte, Excel me renvoie le message d’erreur suivant : «
Référence non valide ».
Alors j’ai cliqué sur mon lien hypertexte pour le modifier et à ce
moment la, la macro m’inscrit en A2 l’adresse du lien hypertexte et
supprime mon texte initial. Pas cool !
Il y a-t-il quelque chose à faire docteur ?
Merci pour ton aide.


On 27 jan, 10:17, FFO wrote:
Salut à toi

Crées ton lien Hypertexte en A2
Puis mets dans le VBA de ta feuille ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
On Error Resume Next
If Target = "x" Then
 ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:="", SubAd dress:= _
        "" & Range("A2") & "", TextToDisplay:="" & Range("A2") & ""
End If
If Target = "X" Then
Range("A2").Hyperlinks(1).Delete
End If
End If
End Sub

En A1 saisis "x" ou "X"

Celà devrait te convenir

Dis moi !!!!


Avatar
FFO
Rebonjour à toi
Je suis formel si tu as respecté mes consignes tu mets un "x" en A1 le lien
est activé si tu mets un "X" en A1 ce lien est supprimé

Par contre si ton lien hypertexe correspond à un fichier et non à une
cellule du même document mets dans le VBA de la feuille ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
On Error Resume Next
If Target = "x" Then
ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:= _
"" & Range("A2") & "", TextToDisplay:="" & Range("A2") & ""
End If
If Target = "X" Then
Range("A2").Hyperlinks(1).Delete
End If
End If
End Sub

Fais des essais et dis moi !!!!
Avatar
FFO
Rebonjour à toi

Il faut pour pouvoir établir le lien que je puisse avec mon code connaitre
son adresse
Soit l'adresse ne change pas et on le met en dur dans le code soit elle est
mouvante auquel cas il faut me donner le moyen de l'avoir
J'avais baser le fonctionnement sur la cellule A2 pour le récupérer mais si
tu mets à la place un texte je suis coincé !!!!!
Il faut me donner une solution (une cellule quelconque par exemple)

Merci de me dire !!!!
Avatar
jthillard
FFO,
Tu as raison d'insister. Mon lien faisait référence à un fichier
autre.
La deuxième solution est très bonne.
Elle fonctionne très bien, je vais l'adapter au contexte.
Merci encore.
JPierre

On 27 jan, 12:00, FFO wrote:
Rebonjour à toi
Je suis formel si tu as respecté mes consignes tu mets un "x" en A1 le lien
est activé si tu mets un "X" en A1 ce lien est supprimé

Par contre si ton lien hypertexe correspond à un fichier et non à une
cellule du même document mets dans le VBA de la feuille ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
On Error Resume Next
If Target = "x" Then
ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:= _
        "" & Range("A2") & "", TextToDisplay:="" & Range("A2") & ""
End If
If Target = "X" Then
Range("A2").Hyperlinks(1).Delete
End If
End If
End Sub

Fais des essais et dis moi !!!!