Word Macro enregistrer en PDF avec nom de fichier prédéfini par champ de formulaire

thomasTRZ

XLDnaute Nouveau
Bonjour à tous,

Je suis en train de travailler sur un formulaire word.
Je cherche à créer une macro qui permettra d'enregistrer au format PDF ce fichier, avec un nom prédéfinie par la macro.
J'avais travaillé sur une macro similaire sur Excel, que je cherche à adapter pour word.
La voici :
VB:
Sub EnregistrerPDF()
Dim Chemin As String, NomFichier As String, madate As String, madate2 As String
 
 
a = MsgBox("Exporter en PDF ?" & Chr(13) & "En cliquant sur OK, vous pourrez choisir le dossier de destination." & Chr(10) & Chr(10) & "ATTENTION : le nom du fichier est créé automatiquement.", vbYesNo + vbQuestion)
If a = vbYes Then
 
 
    NomFichier = ActiveDocument.FormFields("nomsite")
    madate = Now()
    madate2 = Format(madate, "dd-mmmm-yyyy hh-mm")
    Chemin = .SelectedItems(1)
 
  With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show = -1 Then    ' Clic sur Ok
 
    Else
 
     Exit Sub
    End If
  End With
 
  Active.Document.ExportAsFixedFormat Type:=wdTypePDF, FileName:=Chemin & "\" & NomFichier & " - " & madate2, _
                                          Quality:=wdQualityStandard, IncludeDocProperties:=True, _
                                          IgnorePrintAreas:=False, OpenAfterPublish:=True
Else
End If
 
End Sub

Le problème est que l'argument .SelectedItems(1) plante. Or c'est celui ci qui permet à l'utilisateur de choisir le dossier de destination...
Quelqu'un saurais pourquoi ?

Merci à toutes et tous !
 

kiki29

XLDnaute Barbatruc
Salut, encore un drame du copier/coller .... à quoi se rattache .SelectedItems(1) et donc sa position dans ton code ?
De même Active.Document pour ActiveDocument
Bref qqch comme ceci:

VB:
Option Explicit

Sub EnregistrerPDF()
Dim Chemin As String, NomFichier As String, madate As String, madate2 As String
Dim Rep As Long

    Rep = MsgBox("Exporter en PDF ?" & Chr(13) & "En cliquant sur OK, vous pourrez choisir le dossier de destination." & Chr(10) & Chr(10) & "ATTENTION : le nom du fichier est créé automatiquement.", vbYesNo + vbQuestion)
   
    If Rep = vbYes Then
        NomFichier = ActiveDocument.FormFields("nomsite")
        madate = Now()
        madate2 = Format(madate, "dd-mmmm-yyyy hh-mm")

        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show = -1 Then
                Chemin = .SelectedItems(1)
            Else
                Exit Sub
            End If
        End With

        ActiveDocument.ExportAsFixedFormat OutputFileName:=Chemin & "\" & NomFichier & " - " & madate2, _
                                           ExportFormat:=wdExportFormatPDF, _
                                           OpenAfterExport:=False, _
                                           OptimizeFor:=wdExportOptimizeForPrint, _
                                           Range:=wdExportAllDocument, _
                                           From:=1, To:=1, _
                                           Item:=wdExportDocumentContent, _
                                           IncludeDocProps:=True, _
                                           KeepIRM:=True, _
                                           CreateBookmarks:=wdExportCreateNoBookmarks, _
                                           DocStructureTags:=True, _
                                           BitmapMissingFonts:=True, _
                                           UseISO19005_1:=False
    End If
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 090
Messages
2 116 101
Membres
112 661
dernier inscrit
ceucri