OVH Cloud OVH Cloud

Lien hyper-texte document

11 réponses
Avatar
Zszzz
Bonjour,

Je veux changer l'arborescence de document Office=20
contenant des liens hyper-textes entre eux...

Existe-t'il un outil me permettant de savoir dans quels=20
documents j'ai ou j'aurai des liens cass=E9s ?

Ou bien, encore mieux de red=E9finir automatiquement ces=20
liens... Mais il ne faut pas r=EAver...

Merci d'avance

1 réponse

1 2
Avatar
Zszzz
Bonsoir,

-----Message d'origine-----
Bonjour !

'Zszzz' nous a écrit ...
(...)
Mais objWord.Content.HyperLinks n'existe pas. Je suis
obligé de passer par une "Selection", mais je ne
parviens


pas à utiliser "Adress". As-tu une piste ?


objWord = Application , pas Document ! Il faut écrire
objWord.ActiveDocument.Content.Hyperlinks

Ceci répond aussi à ta question à Geo de 10:47 ...

Anacoluthe
« C'est par la séparation qu'on évalue la force des
liens. »

- Gérard GEVRY
.


Arf effectivement, ça fonctionne bcp mieux...

Merci à Anacoluthe et à Geo pour leur aide.

Pour ceux qui en ont besoin :

Const Directory = "y:"
Const FichierLog = "D:tempExportY.log"
Const ForWriting = 2

Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(FichierLog, True)
f.writeline("Traitement du répertoire : " & Directory)
f.WriteLine("Généré le " & Date & " par script")
f.WriteBlankLines 1
f.writeline "--"
f.WriteBlankLines 1
f.Close
Set f = Nothing
Set Folder = FSO.GetFolder(Directory)
Set FileList=Folder.Files
For Each File in FileList
If right(File.name,3) = "doc" Then
Call TraiteDocument(Folder.path & "" & File.name,
FichierLog)
End If
Next
Set objFolders=Folder.SubFolders
For each item in objFolders
Set FileList = item.Files
For Each File in FileList
If right(File.name,3) = "doc" Then
Call TraiteDocument(item.path & "" & File.name,
FichierLog)
End If
Next
Next
Set fso = nothing
WScript.Echo "Traitement terminé !"

Function TraiteDocument(Document, FichLog)
Const ForAppending = 8
Const wdDoNotSaveChanges =0
Const ReadOnly = True

Set MyFile = fso.OpenTextFile(FichLog, ForAppending)
On Error Resume Next
Set objWord = WScript.CreateObject("Word.Application")
objWord.Documents.Open Document, ReadOnly
If Err <> 0 Then
On Error GoTo 0
MyFile.Writeline "Vérifier les autorisations du
fichier " & Document
MyFile.WriteBlankLines 1
Else
On Error GoTo 0
If objWord.ActiveDocument.Fields.Count >= 1 Then
MyFile.writeline "Document = " & Document
MyFile.WriteBlankLines 1
MyFile.Writeline "Nb Champ(s) trouvé(s) = " &
objWord.ActiveDocument.Fields.Count
For Each afield In objWord.ActiveDocument.Fields
MyFile.Writeline afield.Code.Text
Next
MyFile.WriteBlankLines 1
If objWord.ActiveDocument.Content.HyperLinks.Count =
0 Then
MyFile.writeline "--"
MyFile.WriteBlankLines 1
Else
MyFile.writeline "Nb de lien(s) HyperText trouvé(s)
= " & objWord.ActiveDocument.Content.HyperLinks.Count
For Each L In
objWord.ActiveDocument.Content.Hyperlinks
On Error Resume Next
MyFile.Writeline L.Range.Text & " - " & L.Address
On Error Goto 0
Next
MyFile.WriteBlankLines 1
MyFile.writeline "--"
MyFile.WriteBlankLines 1
End If
End If
End If
MyFile.close
ObjWord.quit wdDoNotSaveChanges
Set ObjWord = Nothing
End Function




1 2