Macro pour appliquer un lien hypertexte a une cellule

2 réponses
Avatar
Emile63
Bonjour =C3=A0 tous,
Sur une grande feuille de donn=C3=A9es, j'ai besoin de coller des liens hyp=
ertextes =C3=A0 une grande quantit=C3=A9e de cellules. Pour me faciliter la=
t=C3=A2che, je me sers donc du code ci-dessous pour arriver =C3=A0 mes fin=
s. Toutefois, je serais plus rapide si au lieu de mettre une lettre au clav=
ier dans la bo=C3=AEte de saisie, je pouvais pointer la cellule avec ma sou=
ris et relever directement l'adresse.
Malheureusement, c'est l'id=C3=A9e mais je ne sais pas comment m'y prendre,=
est-ce que quelqu'un pourrait me venir en aide?
'--------------------------------------------------------------------------
Sub ColleLienSouris()
'Colle le lien hypertexte aux cellules dans la boite de dialogue
Dim MaCellule$, MaValeur$
With Application
.StatusBar =3D "Ex=C3=A9cution macro.."
.EnableEvents =3D False
.DisplayAlerts =3D False
End With
If ActiveSheet.Name =3D "Contrat" Then
MaCellule =3D ActiveCell.Address(RowAbsolute:=3DFalse, ColumnAbsolu=
te:=3DFalse)
Sheets("Table traductions").Select
MaValeur =3D InputBox("Tapez le num=C3=A9ro de ligne", "Hyperlien d=
e cellule", "")
If MaValeur =3D "" Then GoTo Fin:
MaValeur =3D "'Table traductions'!" & "B" & MaValeur
Sheets("Contrat").Select
Range(MaCellule).Select
ActiveCell.Hyperlinks.Add Anchor:=3DSelection, Address:=3D"", SubAd=
dress:=3DMaValeur, ScreenTip:=3D"Atteindre texte original"
Fin:
With Application
.StatusBar =3D False
.EnableEvents =3D True
.DisplayAlerts =3D True
End With
End Sub
'--------------------------------------------------------------------------

Merci d'avance pour votre sollicitude,
Emile

2 réponses

Avatar
MichD
Bonjour,
Fais un clic droit sur l'onglet de ladite feuille, choisis la commande
"Visualiser le code" et copie ce qui suit :
'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
'--------------------------------
Chaque fois que tu sélectionnes une cellule, target représente soit
cette cellule ou l'ensemble des cellules de ta sélection.
Par conséquent, il est facile d'obtenir l'adresse de la cellule
sélectionnée puisque l'objet "Target" est un "Range". Pour obtenir
l'adresse : Target.address . L'objet target a les mêmes propriétés qu'un
objet "Range" puisque c'est un "Range".
ATTENTION : Tu ne veux pas nécessairement ajouter un lien internet à
chaque cellule que tu sélectionnes. Par conséquent, tu auras besoin
d'une condition pour que le lien hypertexte soit ajouté ou non.
Une autre alternative, donne un raccourci clavier à ta macro. Lorsque ta
cellule est sélectionnée, tu as qu'à utiliser le raccourci clavier pour
ajouter le lien hypertexte.
J'espère que cela répond à ta question, je ne suis pas sûr d'avoir tout
saisi.
MichD
Avatar
MichD
Le 06/08/20 à 12:00, MichD a écrit :
Bonjour,
Fais un clic droit sur l'onglet de ladite feuille, choisis la commande
"Visualiser le code" et copie ce qui suit :
'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
'--------------------------------
Chaque fois que tu sélectionnes une cellule, target représente soit
cette cellule ou l'ensemble des cellules de ta sélection.
Par conséquent, il est facile d'obtenir l'adresse de la cellule
sélectionnée puisque l'objet "Target" est un "Range". Pour obtenir
l'adresse : Target.address . L'objet target a les mêmes propriétés qu'un
objet "Range" puisque c'est un "Range".
ATTENTION : Tu ne veux pas nécessairement ajouter un lien internet à
chaque cellule que tu sélectionnes. Par conséquent, tu auras besoin
d'une condition pour que le lien hypertexte soit ajouté ou non.
Une autre alternative, donne un raccourci clavier à ta macro. Lorsque ta
cellule est sélectionnée, tu as qu'à utiliser le raccourci clavier pour
ajouter le lien hypertexte.
J'espère que cela répond à ta question, je ne suis pas sûr d'avoir tout
saisi.
MichD

Cet événement est intéressant aussi. La procédure s'exécute à chaque
fois que tu fais un double-clic sur une cellule. Cela empêche la macro
de s'exécuter sur un simple clic.
La variable "Cancel" dans la ligne de déclaration de macro permet
d'interrompre l'exécution de la macro si nécessaire. Il s'agit
d'affecter simplement la valeur False à la variable comme ceci :
Cancel = False
'--------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
End Sub
'--------------------
MichD