Problème de sauvegarde Word et Pdf depuis macro excel
Bonjour,
Je débute dans le VBA et je coince depuis un petit bout de temps sur la fin de ma macro :
J'ai un document word de référence dans lequel j'intègre les données d'une feuille excel via les signets.
Je souhaite conserver le document word original et enregistrer la version modifiée séparément (en word et en pdf).
Les titres de ces nouveaux fichiers sont identiques entre eux et j'aimerais intégrer dedans des informations issues des cellules de l'excel.
Mais j'ai un message d'erreur vide au moment de l'enregistrement. Je n'ai pas réussi à faire une sauvegarde en pdf simple malgré les différents posts du forum.
Pouvez-vous m'aider ? (certaines explications dans mon code sont très simplistes et s'adressent à des utilisateurs sans expérience si des modifications devaient être apportées). Merci !
Code:
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
| Sub creationcertifdestru()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim A As String, B As String
Dim i As Byte
A = ActiveWorkbook.Path & "\Certif Destruction vierge avec signature - copie" 'mettre le nom exact du fichier vierge, ce fichier doit être placé dans le même répertoire que le fichier excel où la macro est présente
B = ActiveWorkbook.Path & "\certificat de destruction - " & Range("G2").Value & " " & Range("D2").Value & " - " & Range("E2").Value & " - " & Range("F2").Value & ".doc" 'permet d'écrire le titre du certificat de destruction créé par la macro
Set WordApp = CreateObject("word.application") 'ouvre une session Word
Set WordDoc = WordApp.Documents.Open(A) 'ouvre le document Word vierge pour réaliser les modifications
WordApp.Visible = False 'Word est affiché pendant l'opération, pour le masquer il faut écrire FALSE
For i = 1 To 9 'on fait ici une boucle pour mettre dans les repères de word le contenu des cellules du fichier excel
'les signets du document Word sont nommés Signet1 , Signet2 , Signet3...
WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(2, i)
Next i 'la boucle s'arrête au bout de 9 tours
WordDoc.Bookmarks("signet10").Range.Text = Format(Now, "dd/mm/yyyy") 'la date du jour est écrite dans le signet 10
WordApp.Visible = False
WordDoc.SaveAs2 B 'sauvegarde le fichier dans un nouveau word, dont l'emplacement et le nom sont indiqués au début du programme (B)
WordDoc.Close 'ferme le document word
WordApp.Quit 'ferme la session Word
'WordDoc.Close True ' en sauvegardant les données
End Sub |