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
| Sub AmianteWord(WordApp As Object, ligne As Integer)
Dim WordDoc As Object, champ As Object
Dim Nom As String, nom_fichier As String
Dim cell As Range, référence As String
nom_fichier = CreateObject("Wscript.Shell").SpecialFolders("Desktop") & "\Courrier amiante\Courrier initial amiante (DTA).docx"
Set WordDoc = WordApp.Documents.Open(nom_fichier)
If Err <> 0 Then MsgBox "Erreur ouverture document modèle -- " & Err.Description: Exit Sub
'// initialisation champs de fusion
WordDoc.Fields.Update
'WordDoc.Bookmarks.Delete
' WordDoc.Bookmarks("Signature").Update
'// remplissage champs de fusion
For Each champ In WordDoc.Fields
'Si champ de fusion ...............................
If champ.Type = 59 Then
'suppression guillemets champ de fusion
Nom = Replace(champ.Result, Chr(171), ""): Nom = Replace(Nom, Chr(187), "")
'remplissage champ de fusion à partir de la valeur de la colonne à laquelle le nom fait référence
Set cell = [P9AFeuille].Rows(1).Find(Nom, LookAt:=xlWhole)
If Not cell Is Nothing Then champ.Result.Text = cell.Offset(ligne - 1)
End If
Next champ
'// sauvegarde et fermeture document
Dim Dossier As String, Fichier As String, chemin As String, Spec As String, doss As String
Fichier = Sheets("P9A").Range("A" & ligne)
Spec = Sheets("P9A").Range("B" & ligne)
doss = "Client P9A " & Fichier & "-" & Spec
chemin = CreateObject("Wscript.Shell").SpecialFolders("Desktop") & "\" & doss
'Word
WordDoc.SaveAs Filename:=chemin & "\Courrier de DTA" & ".docx"
'PDF
WordDoc.ExportAsFixedFormat OutputFileName:= _
chemin & "\Courrier de DTA" & ".pdf", ExportFormat:= _
17, OpenAfterExport:=False, OptimizeFor:= _
0, Range:=0, From:=1, To:=1, _
Item:=0, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=0, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
'WordDoc.SaveChanges = False
WordDoc.Close
End Sub |