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 :

Impression pdf et VBA


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut Impression pdf et VBA
    Bonjour à tous,
    Je souhaite utiliser le code ci-dessous mais je ne souhaite pas utiliser pdfcreator car j'ai déjà Adobe Acrobat Pro 6.

    Je ne trouve pas dans adobe par quoi remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "C:\Program Files\PDFCreator\PDFCreator.exe", vbNormalFocus
    du code
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Sub testPrintPDF()
    Dim oldPrinter As String
    Dim stChemin As String
    Dim stNom As String
    ' Affichage de la fenêtre de PDF
    Shell "C:\Program Files\PDFCreator\PDFCreator.exe", vbNormalFocus
     
    Dim PDFCreator1 As New clsPDFCreator
    oldPrinter = ActivePrinter	
    'On va mettre en mémoire dans une 
    'variable le nom de l'imprimante par défaut
    ActivePrinter = "PDFCreator"
    'Mettre comme imprimante par défaut PDFCreator
    If Len(ActiveDocument.Path) = 0 Then
        stChemin = "c:\temp"
    Else
        stChemin = ActiveDocument.Path
    End If
    'Si le document n'a pas été sauvegardé, le PDF sera dans le répertoire c:\temp
    'et un nom par défaut documentPDF;pdf
    If Len(ActiveDocument.Name) = 0 Then
        stNom = "documentPDF.pdf"
    Else
        stNom = ActiveDocument.Name
    End If
    'les option PDFCreator
    With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = stChemin
       .cOption("AutosaveFilename") = stNom
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cStart
       .cClearCache
    End With
    ActiveDocument.PrintOut Background:=True
    PDFCreator1.cClose
    ActivePrinter = oldPrinter
    ' Change l'imprimante par défaut
     
    End Sub
    Si quelqu'un a une idée?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ce n'est absolument pas la bonne voie.

    Le code qui vient du tuto ne peut être utilisé qu'avec PDFCreator.
    Si tu souhaites utiliser Adobe Acrobat, il faut utiliser les commandes Adobe Acrobat.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut tom0ne,

    Citation Envoyé par Heureux-oli
    Si tu souhaites utiliser Adobe Acrobat, il faut utiliser les commandes Adobe Acrobat.
    Oui. Pour cela, regarde comment s'appelle ton imprimante PDF (souvent du style "Adobe PDF") et demande à imprimer sur cette imprimante. Tu peux même définir cette imprimante comme l'imprimante par défaut et juste demander à Word de faire Print ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.PrintOut
    @+

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Bonsoir,
    En fait je reprends un ancien post :

    Je souhaite imprimer une page sur mon imprimante pdf (c'est mon imprimante par défaut) à partir d'un bouton.

    J'ai créé la macro suivante avec l'aide de word 2003 :
    - 1 je cherche le signet
    - 2 je demande l'impression de la page en cours
    - 3 word me demande le nom du fichier et où l'enregistrer
    - 4 je ferme l'enregistrement de la macro.

    La macro ne contient pas le nom du fichier sous lequel enregistrer le fichier pdf et word me demande donc le nom et l'emplacement d'enregistrement.

    Je souhaiterais que cela se fasse automatiquement car l'emplacement et le nom sont toujours les mêmes.

    Pourriez vous m'aider sur ce problème ?

    Merci,

    Thomas
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Sub IMPR()
    '
    ' IMPR Macro
    ' Macro enregistrée le 29/11/2011 par THOMAS
    '
        Selection.GoTo What:=wdGoToBookmark, Name:="CFACT"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
             Selection.GoTo What:=wdGoToBookmark, Name:="FACT"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
        Selection.GoTo What:=wdGoToBookmark, Name:="RECAP"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
    End Sub

  5. #5
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut tom0ne,

    Citation Envoyé par tom0ne Voir le message
    Bonsoir,
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Sub IMPR()
    '
    ' IMPR Macro
    ' Macro enregistrée le 29/11/2011 par THOMAS
    '
        Selection.GoTo What:=wdGoToBookmark, Name:="CFACT"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
    
        Application.PrintOut FileName:=<Mettre ici le nom de ton 1er fichier>, Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
             Selection.GoTo What:=wdGoToBookmark, Name:="FACT"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
        Selection.GoTo What:=wdGoToBookmark, Name:="RECAP"
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
    
        Application.PrintOut FileName:=<Mettre ici le nom de ton 1er fichier>, Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
    End Sub
    Les parties rouges ne servent à rien dans ton cas (puisqu'il n'y a pas de recherche effectuée <=> pas d'instruction "Find.Execute") ==> Supprime-les, ça allégera ton code
    Remplis les parties vertes avec ton nom de fichier, ceci devrait suffire

    @+

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Salut Sépia,

    Merci de ta réponse,
    Je viens de tester le code ci-dessous en ajoutant un nom à filename.
    J'ai testé un nom avec guillemets puis sans, avec l'extension pdf, puis sans etc...

    J’obtiens toujours l'erreur en pièce jointe.

    Je désespères lol

    Si tu as une autre idée?
    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
    Sub Macro3()
    '
    ' Macro3 Macro
    ' Macro enregistrée le 22/12/2011 par THOMAS
    '
        Selection.GoTo What:=wdGoToBookmark, Name:="CFACT"
        
        ActivePrinter = "Adobe PDF"
        Application.PrintOut FileName:="test", Range:=wdPrintCurrentPage, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
    End Sub
    Images attachées Images attachées  

  7. #7
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut tom0ne,

    Je viens de tester : même pb que toi ==> j'ai essayé autrement sur mon Mac mais je ne peux pas tester sur mon PC, peux-tu vérifier, STP ?
    J'ai mis en rouge ce que j'ai modifié et qui a de l'importance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro()
        Selection.GoTo What:=wdGoToBookmark, Name:="CFACT"
        
        ActivePrinter = "Adobe PDF"
        Application.PrintOut Range:=wdPrintCurrentPage, PrintToFile:= True, OutputFileName:-"test.pdf"
    End Sub
    @+

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Salut Sépia,

    Merci pour ton code,

    J'ai enlevé le - ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputFileName:-"test.pdf"
    J'obtiens l'erreur suivante : erreur de compilation, erreur de syntaxe

    Qu'en penses tu?
    As tu une autre idée?

    Thomas
    Images attachées Images attachées  

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Le - n'est pas à enlever mais à remplacer.

    La valeur est passée aux arguments nommés avec une combinaison :=

    Mettre un : seul va générer une erreur de syntaxe.

    Pour passer une valeur à une fonction, on a deux possibilités.
    Soit on nomme les arguments et on leur affecte une valeur avec un :=

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaFonction Arg1:="aaa", Arg2:="bbb", Arg4:="ddd"
    Soit on utilise leur position dans la syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaFonction "aaa",,"ccc","ddd"
    La , sert de séparateur et si un argument n'est pas utilisé, on laisse sa position vide.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Merci Oli,

    C'est vrai qu'avec un = ça fonctionne tout de suite beaucoup mieux

    Ne me reste plus qu'a déterminer le chemin d'enregistrement du fichier pdf,

    Peux tu me dire comment l'on ajoute le chemin au code?

    Merci,

    Meilleurs vœux et joyeux noël. (à Sépia aussi)

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si veux veux récupérer le chemin avec une intervention de l'utilisateur, il suffit d'utiliser un objet FildeDialog.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim oDlg As FileDialog
    dim MonChemin As String
     
    Set oDlg = Application.FileDialog(msoFileDialogFolderPicker)
     
    oDlg.Show
     
    'Le chamin est renvoyé par cette expression
    Monchemin = oDlg.SelectedItems(1)
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Merci Oli mais ou je rentre le chemin ?

    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro3()
    '
    ' Macro3 Macro
    ' Macro enregistrée le 22/12/2011 par THOMAS
    '
         Selection.GoTo What:=wdGoToBookmark, Name:="CFACT"
     
        ActivePrinter = "ScanSoft PDF Create!"
         ChangeFileOpenDirectory "E:\Documents and Settings\Thom@s\Bureau\"
        Application.PrintOut Range:=wdPrintCurrentPage, PrintToFile:=True, OutputFileName:="test.pdf",
    End Sub
    Mais ça ne marche pas ! lol

  13. #13
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Salut tom0ne,

    PrintToFile:= True, OutputFileName:-"test.pdf"
    Excuse, j'ai tapé trop vite et je n'ai pas vu, il faut en effet remplacer le "-" par "=".

    Pour le chemin, essaye plutôt ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.PrintOut Range:=wdPrintCurrentPage, PrintToFile:=True, OutputFileName:=""E:\Documents and Settings\Thom@s\Bureau\test.pdf"
    @+

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Merci Sépia,

    J'ai testé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       Sub Macro()
        Selection.GoTo What:=wdGoToBookmark, Name:="CFACT"
     
        ActivePrinter = "ScanSoft PDF Create!"
        Application.PrintOut Range:=wdPrintCurrentPage, PrintToFile:=True, OutputFileName:="E:\Documents and Settings\Thom@s\Bureau\test.pdf"
    End Sub
    Le code demande mon intervention pour le nom et l'endroit où enregistrer le fichier.
    Je n'arrive pas à ce que le fichier s'enregistre sous un nom pré-choisi à un emplacement déterminé...

    Tu as une idée?

  15. #15
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    On en revient donc à une de mes questions ??
    Quelle est ta version de Word ?

    OutputFileName est utilisé pour donner un nom au fichier d'impression lorsque c'est Word qui se charge de créer le fichier lorsqu'on imprime dans un fichier.
    On obtient alors un fichier .prn.

    Dans le cas d'une impression PDF, c'est le logiciel d'impression qui va avoir besoin du nom et cet argument ne sert à rien.

    Dans PDFcreator, l'argument qui contient le nom est passé à la fonction pour qu'elle puisse l'utiliser pour donner le nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = stChemin
       .cOption("AutosaveFilename") = stNom
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cStart
       .cClearCache
    End With

    C'est ce nom qui sera utilisé par la fonction pour le nom de sortie du fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PDFCreator1.cOption("AutosaveFilename") = stNom
    Dans ton cas, tu dois savoir quel est l'argument à passer à la fonction pour donner un nom au fichier de sortie.

    Ce serait simple si toutes les imprimantes fonctionnaient de la même façon, mais ce n'est pas le cas.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Merci Oli,

    Je suis en train de désinstaller scansoft et acrobat.

    Je fais un bon nettoyage de windows et je repars avec PDFCREATOR.

    Ensuite je pourrais essayer avec ton code.



    Je vous souhaite de bonnes fêtes de fin d'année et vous tiens au courant bientôt. (Oli et Sépia)

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Salut à tous,
    J'espère que vous avez passez un bon noël et plein de cadeaux.

    J'ai installé PDFCREATOR et j'ai donc repris le code d'origine :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub testPrintPDF()
    Dim oldPrinter As String
    Dim stChemin As String
    Dim stNom As String
    ' Affichage de la fenêtre de PDF
    Shell "d:\Program Files\PDFCreator\PDFCreator.exe", vbNormalFocus
     
    Dim PDFCreator1 As New clsPDFCreator
    oldPrinter = ActivePrinter
    'On va mettre en mémoire dans une
    'variable le nom de l'imprimante par défaut
    ActivePrinter = "PDFCreator"
    'Mettre comme imprimante par défaut PDFCreator
    If Len(ActiveDocument.Path) = 0 Then
        stChemin = "E:\Documents and Settings\Thom@s\Bureau"
    Else
        stChemin = ActiveDocument.Path
    End If
    'Si le document n'a pas été sauvegardé, le PDF sera dans le répertoire c:\temp
    'et un nom par défaut documentPDF;pdf
    If Len(ActiveDocument.Name) = 0 Then
        stNom = "documentcccPDF.pdf"
    Else
        stNom = ActiveDocument.Name
    End If
    'les option PDFCreator
    With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = stChemin
       .cOption("AutosaveFilename") = stNom
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cStart
       .cClearCache
    End With
    ActiveDocument.PrintOut Background:=True
    PDFCreator1.cClose
    ActivePrinter = oldPrinter
    ' Change l'imprimante par défaut
     
    End Sub
    J'ai une erreur dans l'execution du script, voir image jointe,
    Je desespere et ce n'est pas bon pour ma reflexion...

    Un peu d'aide par ici?
    Images attachées Images attachées  

  18. #18
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tu n'as pas ajouté la référence "PDF Creator" à ton projet.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 160
    Points : 62
    Points
    62
    Par défaut
    Salut Oli,

    Merci de ta réponse,

    J'ai bien essayé de l'ajouter mais je ne trouve pas la bonne commande ni l'emplacement qui convient...

  20. #20
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,

    dans l'éditeur VBE, menu outils, références..

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] VBA - Impression pdf avec sélection depuis un Slicer
    Par imslux dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2014, 14h39
  2. Impression fichier PDF en VBA
    Par BAYRAL dans le forum VBA Access
    Réponses: 3
    Dernier message: 23/02/2012, 21h54
  3. Réponses: 2
    Dernier message: 01/06/2011, 00h22
  4. Impression PDF en VBA
    Par divayg dans le forum Général VBA
    Réponses: 0
    Dernier message: 27/11/2009, 13h24
  5. Impression PDF a l'aide de VBA
    Par kalu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2009, 10h08

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