Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Word VBA pour Word

sudo

XLDnaute Nouveau
Bonsoir à tous,
ne connaissant pas grande chose en programmation et surtout en VBA, c'est la raison pour laquelle je me tourne vers vous.
je dispose d'un document word fonctionnant avec une macro ( enregistrer sous Normal.dotm).
lorsque j'ouvre le document word, je fais des modifications dessus par exemple, en bas, j'ai deux boutons : Sauvegarder pour enregistrer le document en pdf ou Annuler pour nettoyer tout ce qui a été saisi dans le document word.
J'ai pas écris le code, j'essaye de l'adapter à mon besoin
** Premier problème.
le document peut par exemple avoir 1, 2, 3, ou n page. mais j'aimerais que lorsque je clique sur sauvegarder, la fonction ne m'enregistrer que les pages n-1 et non les n pages.
c.a.d si j'ai 10 pages elle ne dois m'enregistrer que les 9 premières pages par exemples.
ci-dessous le code que j'utilise qui enregistre toutes les pages 5pour un document avec trois pages) lorsque je clique sur le bouton SAUVEGARDER. je voudrais rendre cela dynamique
sur le code ci-dessous, si le document à trois page, il n'enregistre que les deux premières


Pour ceux qui vont se demandent pourquoi enregistrer les pages n-1 ; mon soucis est que, je veux pas que les boutons Sauvegarder et Annuler apparaissent sur le document final, du coup ils sont sur la page suivante.
s'il y a d'autre moyen pour gérer cela, suis partant.



VB:
Public Sub Sauvegardepdf()

' Sauvegarde en .pdf iso 19005 1
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ChemFichTot, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportFromTo, From:=1, To:=2, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
True, UseISO19005_1:=True
MsgBox "Fichier enregistré sous le nom :" & vbCrLf & NomFichSauv & ".pdf" & vbCrLf & _
"dans le dossier :" & vbCrLf & CheminFichier
' If varFctSauv(1) Then
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End If
End
 
Solution
Bonjour @sudo, @TooFatBoy, le fil

Test OK (Word 365)
La dernière page n'est pas dans le PDF
VB:
Sub WordPDF_Toutes_Sauf_LastOne()
Dim strPath$
strPath = "C:\Users\STAPLE\Documents\" 'adapter le chemin
NB_Pages = ActiveDocument.ActiveWindow.Panes(1).Pages.Count - 1
ActiveDocument.ExportAsFixedFormat OutputFileName:=strPath & "test_291022.pdf", _
                ExportFormat:=wdExportFormatPDF, OptimizeFor:=wdExportOptimizeForPrint, _
                Range:=wdExportFromTo, From:=1, To:=NB_Pages, Item:=wdExportDocumentContent, _
                DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=True
End Sub

TooFatBoy

XLDnaute Barbatruc
Bonjour,

N'y a-t-il pas moyen, comme sous Excel, de configurer les boutons pour qu'ils ne s'impriment pas ?
 

Staple1600

XLDnaute Barbatruc
Bonjour @sudo, @TooFatBoy, le fil

Test OK (Word 365)
La dernière page n'est pas dans le PDF
VB:
Sub WordPDF_Toutes_Sauf_LastOne()
Dim strPath$
strPath = "C:\Users\STAPLE\Documents\" 'adapter le chemin
NB_Pages = ActiveDocument.ActiveWindow.Panes(1).Pages.Count - 1
ActiveDocument.ExportAsFixedFormat OutputFileName:=strPath & "test_291022.pdf", _
                ExportFormat:=wdExportFormatPDF, OptimizeFor:=wdExportOptimizeForPrint, _
                Range:=wdExportFromTo, From:=1, To:=NB_Pages, Item:=wdExportDocumentContent, _
                DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=True
End Sub
 

sudo

XLDnaute Nouveau
Bonjour, je teste cela en journée et je te reviens.
Merci pour le temps mis
 

sudo

XLDnaute Nouveau
@Staple1600 merci encore pour ton code. j'ai pu l'adapter à mon problème et cela fonctionne Parfatement .
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
821
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…