Macro pour appliquer un lien hypertexte a une cellule

Le
Emile63
Bonjour à tous,
Sur une grande feuille de données, j'ai besoin de coller des liens hyp=
ertextes à une grande quantitée de cellules. Pour me faciliter la=
tâche, je me sers donc du code ci-dessous pour arriver à mes fin=
s. Toutefois, je serais plus rapide si au lieu de mettre une lettre au clav=
ier dans la boîte de saisie, je pouvais pointer la cellule avec ma sou=
ris et relever directement l'adresse.
Malheureusement, c'est l'idée 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 = "Exécution macro.."
.EnableEvents = False
.DisplayAlerts = False
End With
If ActiveSheet.Name = "Contrat" Then
MaCellule = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolu=
te:=False)
Sheets("Table traductions").Select
MaValeur = InputBox("Tapez le numéro de ligne", "Hyperlien d=
e cellule", "")
If MaValeur = "" Then GoTo Fin:
MaValeur = "'Table traductions'!" & "B" & MaValeur
Sheets("Contrat").Select
Range(MaCellule).Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAd=
dress:=MaValeur, ScreenTip:="Atteindre texte original"
Fin:
With Application
.StatusBar = False
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub
'--

Merci d'avance pour votre sollicitude,
Emile
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
MichD
Le #26552618
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
MichD
Le #26552620
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
Poster une réponse
Anonyme