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 : 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 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
Partager