Blog
WORD – Transformer un groupe de mots en lien hypertexte
Définition :
Un groupe de mots, c’est un ensemble de caractères encadré par deux caractères blancs ou par un caractère blanc et un changement de paragraphe. Pour sélectionner un groupe de mots dans un texte Word, on a la possibilité d’utiliser un signet. Cela se complique si celui-ci n’existe pas. L’idée serait donc de pouvoir sélectionner tout un groupe de mots quelque soit la position du curseur dans ce groupe.
But de la macro :
Transformer le groupe de mots en lien hypertexte sans sélectionner l’ensemble de la chaine, juste à partir de la sélection en cours.
Code de la macro :
Dans l’exemple ci-dessous, l’idée serait de transformer la chaine mon.nom.tomate@compagnie.com en lien hypertexte. La sélection en cours se situe par exemple entre le o et le m du mot tomate.

Code:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
Sub SelectionnerUnGroupeDeMots()
Dim I As Long, PositionRepere As Long, PositionMot As Long
Dim MonRange As Range, RangeDepart As Range, RangeFin As Range
Dim Continuer As Boolean
Selection.HomeKey unit:=wdStory, Extend:=wdExtend
PositionMot = Selection.Words.Count
ActiveDocument.Words(PositionMot).Select
Selection.MoveLeft unit:=wdWord
PositionRepere = Selection.Characters.Count + 1
Set MonRange = Selection.Range
MonRange.Select
Continuer = True
With Selection
Do While Continuer = True
Selection.MoveLeft unit:=wdCharacter, Count:=1
Select Case Selection.Characters(1).Text
Case Chr(32), Chr(160), Chr(13)
Continuer = False
Case Else
Set RangeDepart = Selection.Range
End Select
Loop
Selection.MoveRight unit:=wdCharacter, Count:=1
Set RangeDepart = Selection.Range
End With
MonRange.Select
Continuer = True
With Selection
Do While Continuer = True
Selection.MoveRight unit:=wdCharacter, Count:=1
Select Case Selection.Characters(1).Text
Case Chr(32), Chr(160), Chr(13)
Continuer = False
Case Else
Set RangeFin = Selection.Range
End Select
Loop
Selection.MoveRight unit:=wdCharacter, Count:=1
Set RangeFin = Selection.Range
End With
Set MonRange = ActiveDocument.Range(Start:=RangeDepart.Start, End:=RangeFin.End)
'Debug.Print "Start : " & RangeDepart.Start & ", End : " & RangeFin.End & ", contenu : " & MonRange.Text
MonRange.Select
With MonRange.Font
.ColorIndex = 2
.Size = 10
.Name = "Calibri"
End With
ActiveDocument.Hyperlinks.Add Anchor:=MonRange, Address:= _
"mailto:" & Selection.Range, SubAddress:="", ScreenTip:="", TextToDisplay:=Selection.Range.Text
Set MonRange = Nothing: Set RangeDepart = Nothing: Set RangeFin = Nothing
End Sub
|
Après macro :

Lancement de la macro :
Le lancement de la macro peut se faire depuis la barre d’accès rapide comme ici avec le bouton rouge.
Le mode opératoire est ici : Word-demarrer-macro-associee-document-barre-dacces-rapide
