IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Créer une macro pour enregistrer sous pdf (avec nom de fichier) [WD-2016]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    responsable administratif
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : responsable administratif
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Créer une macro pour enregistrer sous pdf (avec nom de fichier)
    Bonjour,

    Je me permets de m'inscrire sur ce forum pour poser une question dont je ne trouve pas la réponse.

    Je souhaite créer une macro sous WORD pour automatiser
    - l'enregistrement sur le bureau du document en cours
    - au format pdf
    - en lui donnant au fichier final le nom du document word.

    Comme je suis débutant en VBA, j'ai utilisé l'enregistreur de macro, qui a filmé mes mouvements et donné le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub EnregistrerPDF()
    ' EnregistrerPDF Macro
          ActiveDocument.ExportAsFixedFormat OutputFileName:= _
            "C:\Users\Jean-Baptiste\Desktop\FICHIER TEST.pdf", ExportFormat:= _
            wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
            wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
            Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
            CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=True, UseISO19005_1:=False
    End Sub
    Tout marche bien, sauf que le fichier créé se nomme "FICHIER TEST", et que ce nom ne change pas quel que soit le fichier WORD utilisé.
    Comment indiquer que je veux que le fichier pdf porte le nom du fichier en cours ? ActiveDocument.Name ?

    Merci d'avance pour votre réponse précieuse !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jbramond Voir le message
    Bonjour,

    Essayez :
    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 EnregistrerPDF()
     
    Dim CheminCompletExport As String
     
         With ActiveDocument
     
              CheminCompletExport = "C:\Users\Jean-Baptiste\Desktop\" & NomSansExtension(.Name) & ".pdf"
             .ExportAsFixedFormat OutputFileName:=CheminCompletExport, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True
     
        End With
     
    End Sub
     
    Function NomSansExtension(ByVal NomDoc As String) As String
     
    Dim I As Integer, PositionPoint As Integer
     
        For I = Len(NomDoc) To 1 Step -1
            If Mid(NomDoc, I, 1) = "." Then
               PositionPoint = I
               Exit For
            End If
        Next I
        NomSansExtension = Mid(NomDoc, 1, PositionPoint - 1)
     
    End Function

  3. #3
    Candidat au Club
    Homme Profil pro
    responsable administratif
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : responsable administratif
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci Eric, ça marche parfaitement, c'est exactement ça !
    Bonne fin d'année à vous !

  4. #4
    Candidat au Club
    Homme Profil pro
    Junior Machine Learning Analyst
    Inscrit en
    Septembre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Junior Machine Learning Analyst
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2020
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonsoir jbramond,

    J'ai essayé d'implementer le code ci-dessus en changeant le chemin mais ça pas fonctionné, pouvez vous vérifiez avec moi où existe l'erreur exactement? (Je suis vraiment débutant)

    ça retourne: Erreur d'éxcution 424 - Objet réquis.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Enregistrement document Word au format PDF
    Bonjour,
    j'espère être à la bonne place pour poser ma question ...


    Ci-dessous un code qui me permettais d'enregistrer le fichier word actif dans le même répertoire avec le même nom mais au format .PDF
    mais ne marche plus correctement et me retourne une boite de dialogue : "Microsoft Visual Basic pour Applications" (avec un rond rouge contenant une croix) et les cases OK / Aide

    Est-ce quelqu'un peut m'expliquer ce qui peut déclencher cette boîte de dialogue??

    merci pour votre aide
    (j'utilise office 365)

    Sub VersPDF()

    Dim nfichier As String, nfichier2 As String, intpos As Byte

    nfichier = ActiveDocument.Name
    'trouve la position de l'extension
    intpos = InStrRev(nfichier, ".")
    'remplace l'extension doc par pdf
    nfichier = Left(nfichier, intpos - 1)
    nfichier2 = nfichier & ".pdf"
    'enregistre dans le dossier en cours
    ActiveDocument.ExportAsFixedFormat outputFileName:=ActiveDocument.Path & "/" & nfichier2, _
    exportFormat:=wdExportFormatPDF

    Application.DisplayAlerts = False
    ActiveDocument.Close SaveChanges:=False
    Application.DisplayAlerts = True

    Application.Quit

    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Créer une macro pour enregistrer en pdf
    Par PCL51 dans le forum Excel
    Réponses: 4
    Dernier message: 23/07/2016, 21h01
  2. Réponses: 16
    Dernier message: 22/12/2015, 08h12
  3. Réponses: 3
    Dernier message: 19/11/2015, 15h31
  4. Réponses: 11
    Dernier message: 31/07/2015, 14h52
  5. [XL-2003] Macro pour imprimer en pdf avec nom de fichiers variables
    Par YoTaPi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2014, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo