Bonjour,
Je cherche à faire une macro pour modifier dans un fichier word (au format .htm mais qui s'ouvre dans Word) des liens hypertext.
Le but est de :
- Trouver les chaînes de caractères qui possèdent un lien hypertext
- Modifier ce texte et le lien hypertexte (ce qui m’intéresse c'est la mise en page de cette chêne et ça position dans le document)
- Sauver et quitter
Pour le moment j'essaie de récupérer les liens hypertextes mais je n'y arrive pas depuis excel.
J'ai essayé depuis word et ça fonction avec ce code :
Sub qSolution()
Dim HL As Hyperlink
For Each HL In ActiveDocument.Hyperlinks
Debug.Print HL.Range.Text
Debug.Print HL.Address
Next
End Sub
Et dans Excel je ne peux pas utiliser de variable hyperlink car sinon j'ai un problème de compatibilité
Sub ListeLiens()
Sub ListeLiens()
Dim hlien As Hyperlink
Dim wordapp As Object
Dim pathHtm As String
Dim WordDoc As Word.Document
Dim wordHyperlinks As Collection
Dim htmFile As String
Dim i As Integer
pathHtm = "C:\Users\100786184\Documents\Test export\PPT\"
htmFile = "EN10 - PPR Session Preparation for mBOM HL.htm"
' Création d'un nouveau document :
If IsFileOpen(pathHtm & htmFile) = True Then
Set wordapp = Word.Application
Set WordDoc = wordapp.Documents(pathHtm & htmFile)
Else
Set wordapp = New Word.Application
wordapp.Visible = True
Set WordDoc = wordapp.Documents.Open(pathHtm & htmFile)
End If
' Ecriture d'un petit texte dans ce nouveau document :
Debug.Print WordDoc.Hyperlinks.Count
For i = 1 To WordDoc.Hyperlinks.Count - 1 'WordDoc.Hyperlinks
Debug.Print TypeName(WordDoc.Hyperlinks.Item(i))
'Set hlien = WordDoc.Hyperlinks.Item(i)
With hlien
Debug.Print WordDoc.Hyperlinks.Item(i).Range.Text
Debug.Print WordDoc.Hyperlinks.Item(i).Address
End With
Next i
' wordapp.ActiveDocument.Close
Set WordDoc = Nothing
Set wordapp = Nothing
End Sub
C'est la variable hlien qui ne fonction pas et je ne sais pas pourquoi.
Voila si vous avez une idée ?
Merci