Bonjour,
Je débute avec vba. J'aimerais remplir des signets qui sont dans un document word et enregistrer le document sous format pdf. S'il vous plaît aider moi. Voici le code
Pièce jointe 384819
Version imprimable
Bonjour,
Je débute avec vba. J'aimerais remplir des signets qui sont dans un document word et enregistrer le document sous format pdf. S'il vous plaît aider moi. Voici le code
Pièce jointe 384819
Deux remarque sur la forme de ta demande :
Si c'est une question sur Word, tu aurais du la placer dans la rubrique VBA Word.
Il est peut pratique d'avoir un code sous forme d'image (on est obligé de le retaper). Tu devrais plutôt le copier sous forme de texte, de préférence avec des balises CODE (l'icone # de l'éditeur du forum).
[QUOTE=sn1girlpower;10272918]Bonjour,
Je débute avec vba. J'aimerais remplir des signets qui sont dans un document word et enregistrer le document sous format pdf. S'il vous plaît aider moi. Voici le code
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
28
29
30
31
32
33
34
35
36
37
38
39 Sub Export_Word() Application.DisplayAlerts = False Dim Doc_origine As String, Doc_save As String Dim WordApp As Object Dim WordDoc As Object Doc_origine = ActiveWorkbook.Path & "\Contrat_sous_traitant.docx" Date_F = Format(Date, "ddmmYYYY_") 'Doc_origine = ActiveWorkbook.Path & "\toto.docx" ' Doc_save = ActiveWorkbook.Path & "\toto_dossier" & Sheets("Feuil1").Range("A1").Text & ".docx" Set WordApp = CreateObject("word.application") Set WordDoc = WordApp.Documents.Open(Doc_origine, ReadOnly:=False) ' WordApp.Visible = False WordDoc.Bookmarks("toto").Range.Text = Cells(6, 1) WordDoc.Bookmarks("toto").Range.Text = Cells(6, 2) WordApp.Visible = True 'adaptez le nom de la feuille With Worksheets("Feuil1") Doc_name = "\" & "toto_" & Date_F & .Range("A6") Doc_rep = ActiveWorkbook.Path & "\toto" Doc_save = Doc_rep & Doc_name .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Doc_name, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End With 'objWordApp.ActiveDocument.SaveAs2 Doc_save ' WordDoc.Application.ActiveDocument.SaveAs Doc_save 'WordApp.Application.Quit 'WordDoc.PrintOut WordDoc.Close True End Sub
Je n'ai pas analyser ton code en détail mais j'ai quand même remarqué quelques trucs qui piquent les yeux.
Là, tu remplaces le contenu du signet toto par le contenu de la cellule A6, puis, juste après, tu remplaces ce même signet par le contenu de B6.Citation:
Code:
1
2 WordDoc.Bookmarks("toto").Range.Text = Cells(6, 1) WordDoc.Bookmarks("toto").Range.Text = Cells(6, 2)
Le second va forcément écraser le premier rendant la première ligne inutile.
Si tu veux mettre les deux valeurs dans le signet, il faudrait écrire :
Code:WordDoc.Bookmarks("toto").Range.Text = Cells(6, 1) & Cells(6, 2)
Le "." qui débute cette instruction fait référence à With Worksheets("Feuil1"), ce qui signifie que c'est ton tableau Excel que tu essayes d'exporter en PDF et non le document Word comme tu le décris dans ton explication.Citation:
Code:
1
2 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Doc_name, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Merci pour votre réponse j'ai corrigé le code et j'ai erreur 5941
Je précise le signet existeCode:WordDoc.Bookmarks("Num").Range.Text = Cells(6, 1)
Merci de m'aider
Bonjour,
Ou bien, dans ton document Word, tu fais F5 et tu choisis le signet. Si tu l'atteins, il existe. Sinon…