Bonjour à tous,
Depuis ma VBA Excel, je créé un fichier Word dans lequel j'ajoute du texte. Mon souci est que ce texte doit être en "hyperlink" et surtout s'ecrire en append a chaque fois... Voici mon code :
J'ai essayé de réécrire cette ligne "Anchor:=.Sections(1).Last.Range" de la façon suivante : ".Hyperlinks.Add Anchor:=Sections(1).Range.End".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Test() 'Déclaration des variables Dim nom As String Dim NomDoc As String Dim Chemin As String Dim appWD As Word.Application Dim oDoc As Word.Document 'Initialisatoion variables nom = "ListeLiens" NomDoc = nom & ".doc" 'Vérification du nom pour etre sur qu'il n'est pas vide If Len(nom) = 1 Then MsgBox "" Exit Sub 'si la ligne ne contient ni nom ni prénom on quitte End If 'On indique le dossier d'enregistrement du .doc Chemin = "P:\" & NomDoc On Error Resume Next 'On créer l'objet et on vérifie sont existance Set appWD = CreateObject("Word.Application") If Err.Number <> 0 Then Set appWD = CreateObject("Word.Application") End If 'On repart du début si erreur On Error GoTo 0 'On vérifie que le chemin existe et on ouvre le document If Dir(Chemin) <> "" Then Set oDoc = appWD.Documents.Open(Chemin) Else 'On ecrit dans le document Set oDoc = appWD.Documents.Add With oDoc With .Sections(1).Range .Font.Bold = True 'en gras .Font.Italic = True 'en italique .Text = "TATA" .InsertAfter vbLf & "TOTO " .Hyperlinks.Add Anchor:=.Sections(1).Last.Range, _ Address:="http://toto.com", _ ScreenTip:="totobulle", _ TextToDisplay:="totolink" End With .SaveAs Chemin End With End If appWD.Visible = True appWD.Activate End Sub
Bref cela ne fonctionne pas... J'ai un message d'erreur me disant que ce qui est écrit dans "Anchor" est faux. Le message d'erreur est :
Si je change la ligne par ".Hyperlinks.Add Anchor:=.Sections(1).Range" alors cela fonctionne mais m'écrase les premières lignes saisies.
Avez-vous une solution s'il-vous-plaît ?
Partager