Ihor souhaite automatiser l’insertion d’un lien hypertexte URL dans un document Word. L’URL sera associée à une phrase, telle que « cliquez ici ». Il copie d’abord l’URL d’un site Web spécifique dans le Presse-papiers.

Il enregistre ensuite une macro qui ouvre la boîte de dialogue Insérer un lien hypertexte (Ctrl + K) et colle dans le champ approprié l’URL du Presse-papiers (Ctrl + V) et clique sur OK. Lorsqu’il exécute plus tard la macro, elle lui donne la même URL chaque fois qu’il l’exécute. Ihor veut coller une URL différente dans la boîte de dialogue chaque fois qu’il exécute la macro, mais ne semble pas savoir comment procéder.

Lorsque vous enregistrez une macro, ce qu’elle fait est très littéral – elle enregistre exactement les étapes que vous effectuez, y compris la façon dont les boîtes de dialogue sont remplies. La solution n’est pas de chercher des moyens de coller de nouvelles informations dans une boîte de dialogue, mais de regarder comment vous créez votre lien hypertexte.

Voici ce qui serait enregistré si vous insérez un lien hypertexte avec l’enregistreur de macros en cours d’exécution:

Sub Macro1()

' ' Macro1 Macro ' '     ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _         "//", SubAddress:="", ScreenTip:="", TextToDisplay:= _         "click here"

End Sub

Ce que Ihor veut changer, c’est la cible du lien hypertexte, qui est assignée à la propriété Address; c’est ce qui est « collé » dans le champ Adresse de la boîte de dialogue. Pour ce faire, vous pouvez modifier votre macro d’une manière simple, comme ceci:

Sub Macro2()

Dim sTemp As String     sTemp = "//"



ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _       Address:= sTemp, SubAddress:="", ScreenTip:="", _       TextToDisplay:= "click here"

End Sub

Tout ce qui a été fait dans cet exemple est de supprimer certains des commentaires inutiles au début de la macro et de créer une variable de chaîne, sTemp, qui contient désormais la cible du lien hypertexte. Cette variable est ensuite affectée à la propriété Address. Pour changer la cible, il suffit donc de changer la valeur de la variable sTemp – et cela peut être fait de plusieurs manières.

Une façon est d’utiliser une fonction InputBox pour créer votre propre boîte de dialogue, de cette manière:

Sub Macro3()

Dim sTemp As String     Dim sPrompt As String     Dim sTitle As String

sPrompt = "Enter the target for the hyperlink"

sTitle = "Hyperlink Destination"

sTemp = "//"

sTemp = InputBox(sPrompt, sTitle, sTemp)



ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _       Address:= sTemp, SubAddress:="", ScreenTip:="", _       TextToDisplay:= "click here"

End Sub

Bien sûr, Ihor a mentionné que dans son processus, il copie en fait l’URL dans le presse-papiers. Si c’est le processus qu’il souhaite utiliser, il est possible d’attribuer l’URL en fonction de ce qui se trouve dans le Presse-papiers lorsque la macro est exécutée. Voici comment vous feriez cela:

Sub Macro4()

Dim sTemp As String     Dim MyData As DataObject     Set MyData = New DataObject

MyData.GetFromClipboard     sTemp = Trim(MyData.GetText(1))



ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _       Address:= sTemp, SubAddress:="", ScreenTip:="", _       TextToDisplay:= "click here"

End Sub

Pour utiliser le Presse-papiers de cette manière, vous devrez configurer une référence pour les formulaires Microsoft dans l’éditeur VBA. (Choisissez Références dans le menu Outils de l’éditeur.)

Notez également que tous ces exemples modifient ce qui est affecté à la propriété Address de votre nouveau lien hypertexte. Il y a de fortes chances que vous souhaitiez modifier la macro pour modifier également ce qui est affecté à la propriété TextToDisplay.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (11906) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365. Vous pouvez trouver une version de cette astuce pour le ancienne interface de menu de Word ici:

link: / word-Changing_What_Is_Pasted_in_a_Dialog_Box [Modification de ce qui est collé dans une boîte de dialogue].