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 :

Word -> PDF


Sujet :

VBA Word

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut Word -> PDF
    Bonjour a tous,

    J'ai un petit problème, je dois créer des documents word en pdf. J'ai utiliser ce code afin de les créer, mais le problème c'est qu'il me demande le nom de fichier pour le document pdf a créer, il y a-t-il une solutions pour passer le nom en paramêtre?

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    ActivePrinter = "Adobe PDF"
     
    app.PrintOut FileName:="", outputfilename:="", Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Salut,

    Je galère aussi sur la conversion de word en PDF ...
    Petite question -> tu as Adobe Writer d'installer sur ton PC ?

    J'ai trouvé pas mal d'exemple pour convertir du word en pdf, mais cela nécéssite d'installer un tas de logiciel comme PDF Creator, ...
    Contactes moi par MP, si tu veux que je te les envoie !

    Dans mon cas, mon application doit être déployé sur différents postes dont je ne connais pas les composants ! Existe-il un moyen de vérifier quel type de logiciel est installé sur le poste client et ensuite d'utiliser avec du code générique le logiciel adéquat ?

    Merci d'avance

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Ouai j'ai adobe writer installé sur ma machine. Et mon programme tounera que sur ma machine.

    Mais je sais pas trop comment faire, je peut pas trop t'aider...


    Est-ce que quelqu'un pourrait NOUS aider???? lol

  4. #4
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Points : 173
    Points
    173
    Par défaut
    tu as essayé de mettre quelque chose dans outputfilename:="" du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActivePrinter = "Adobe PDF" 
     
    app.PrintOut FileName:="", outputfilename:="c:\essai.pdf", Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    A tout hasard, est-ce que quelqu'un sait comment on peut vérifier si sur un poste utilisateur, une imprimante virtuelle (pour pdf) est installé ?

    Merci d'avance pour votre aide !

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    J'avais déjà essyé ça mais il me fait une erreur lorsque je mets un valeur dans outputfilename. Je comprend rien

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je ne peux que t'indiquer ce qu'il y a dans l'aide à PrintOut, n'ayant jamais eu à le pratiquer. Si tu ne l'as pas, tu demandes. Tu n'es pas sur MAC ?
    Je penche vers une erreur dans l'affectation du nom de fichier. Affiche-le ou mets un point d'arrêt...
    Désolé de n'être pas plus constructif.

    A+

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    si tu est sur mac, ATTENTION les chemins ne s'écrivent pas de la même façon

    HD:mondossier:monfichier

    pour C:\\mondossier\monfichier.pdf


    pas besoin de .pdf, sur mac, c'est inscript dans le fichier pas dans l'extention.

    sur système X, tu peut ecrire les chemin façon Mac o Unix, il comprend

    (unix comme PC mais / et pas \)


    cordialement

    XHY65

  9. #9
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Escalon a écrit :
    En allant dans "imprimer", si une imprimante virtuelle est installée, elle apparaît dans la liste des imprimantes disponibles.
    En fait, ce que je voulais dire, c'est comment le savoir par code VB pour que j'automatise ensuite ma génération de PDF en fonction du matériel installé.
    Si je vois qu'il n'existe pas d'imprimante virtuelle, je ne propose pas la génération de document en PDF.

    Dans tous les cas merci pour votre aide !

    ++

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    essaie de voir ce que tu peux faire avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.Dialogs.Item(xlDialogPrint).Show
    Dans Dialogs, tu as une quantité d'options dont je te donne la liste. Je n'en ai testé que quelques uns... mais pas celui que tu veux.

    'xlDialogPrint range_num, from, to, copies, draft, preview, print_what, color, feed, quality, y_resolution, selection, printer_text, print_to_file, collate

    Je ne suis pas sûr que ça te convienne mais je n'ai pas mieux

    Malgré tout, j'essairais de désigner l'imprimante avec une gestion d'erreur, si ce n'est pas la bonne, tu fais ce que tu as à faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonImprimante = "\\OLAN\CCACX010 sur Ne05:"
    Application.ActivePrinter = MonImprimante
    ActiveSheet.PrintOut
    où "\\OLAN\CCACX010 sur Ne05:" est le nom d'une imprimante sur le réseau

    Tu connais "Application.displayalerts"... pour éviter les messages intempestifs...

    Bonne chance

    A+

  11. #11
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Je teste ça de suite et j'édite !

    Encore merci !

    Edité :
    Ok, ça marche, mais j'ai eu du mal à récupérer toutes les imprimantes sur le posteutilisateurs !

    J'ai par contre trouvé un autre source qui liste facilement toute les imprimantes installés en utilisant l'api EnumPrinters.
    Si ça intéresse qq, faites moi signe.

    Maintenant, la question est de savoir comment reconnaitre les imprimantes virtuelles pour PDF ...
    Je pense qu'en faisant une recherche sur le mot PDF ou Adobe dans le libéllé de l'imprimante on devrait avoir déjà 80% des imprimantes PDF !
    Y'a-t-il à ce sujet un moyen de le savoir ?

    J'ai remarqué pour PDFMail que le port de l'imprimante est sur LOCAL.
    Quand est-il pour les autres cas ?

    Merci d'avance

    ++

  12. #12
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    J'ai enfin trouvé quelque chose !

    Tout d'abord j'utilise ce code pour rechercher mes imprimante :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    Option Explicit
     
    Const PRINTER_ENUM_CONNECTIONS = &H4
    Const PRINTER_ENUM_LOCAL = &H2
     
    Public Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" _
            (ByVal flags As Long, ByVal name As String, ByVal Level As Long, _
            pPrinterEnum As Long, ByVal cdBuf As Long, pcbNeeded As Long, _
            pcReturned As Long) As Long
     
    Public Declare Function PtrToStr Lib "kernel32" Alias "lstrcpyA" _
            (ByVal RetVal As String, ByVal Ptr As Long) As Long
     
    Public Declare Function StrLen Lib "kernel32" Alias "lstrlenA" _
           (ByVal Ptr As Long) As Long
     
    Public Function ListPrinters() As Variant
        Dim bSuccess As Boolean
        Dim iBufferRequired As Long
        Dim iBufferSize As Long
        Dim iBuffer() As Long
        Dim iEntries As Long
        Dim iIndex As Long
        Dim strPrinterName As String
        Dim iDummy As Long
        Dim iDriverBuffer() As Long
        Dim StrPrinters() As String
     
        iBufferSize = 3072
        ReDim iBuffer((iBufferSize \ 4) - 1) As Long
        'EnumPrinters will return a value False if the buffer is not big enough
        bSuccess = EnumPrinters(PRINTER_ENUM_CONNECTIONS Or PRINTER_ENUM_LOCAL, vbNullString, _
                1, iBuffer(0), iBufferSize, iBufferRequired, iEntries)
     
        If Not bSuccess Then
            If iBufferRequired > iBufferSize Then
                iBufferSize = iBufferRequired
                Debug.Print "iBuffer too small. Trying again with "; iBufferSize & " bytes."
                ReDim iBuffer(iBufferSize \ 4) As Long
            End If
            'Try again with new buffer
            bSuccess = EnumPrinters(PRINTER_ENUM_CONNECTIONS Or PRINTER_ENUM_LOCAL, vbNullString, _
                    1, iBuffer(0), iBufferSize, iBufferRequired, iEntries)
        End If
     
        If Not bSuccess Then
            'Enumprinters returned False
            MsgBox "Error enumerating printers."
            Exit Function
        Else
            'Enumprinters returned True, use found printers to fill the array
            ReDim StrPrinters(iEntries - 1)
            For iIndex = 0 To iEntries - 1
                'Get the printername
                strPrinterName = Space$(StrLen(iBuffer(iIndex * 4 + 2)))
                iDummy = PtrToStr(strPrinterName, iBuffer(iIndex * 4 + 2))
                StrPrinters(iIndex) = strPrinterName
            Next iIndex
        End If
        ListPrinters = StrPrinters
     
    End Function
     
    Public Function IsBounded(vArray As Variant) As Boolean
        'If the variant passed to this function is an array, the function will return True;
        'otherwise it will return False
        On Error Resume Next
        IsBounded = IsNumeric(UBound(vArray))
     
    End Function
     
    Public sub Test()
        Dim StrPrinters As Variant, i As Long
        Dim bResult As Boolean
     
        Global_ImprimantePDF = "NO_PRINTERS"
        'Recherche des imprimantes présentes sur le poste utilisateur
        StrPrinters = ListPrinters
        'Vérifie s'il y a plusieurs imprimantes (tableau)
        If IsBounded(StrPrinters) Then
            For i = LBound(StrPrinters) To UBound(StrPrinters)
                'Debug.Print StrPrinters(i)
                If InStr(LCase(StrPrinters(i)), LCase("PDF")) > 0 Then
                    'On prend la première imprimante PDF disponible
                    Global_ImprimantePDF = StrPrinters(i)
                    Exit For
                End If
            Next i
            'Recherche l'imprimante active
            Global_ImprimanteActive = Application.ActivePrinter
            bResult = False
            For i = LBound(StrPrinters) To UBound(StrPrinters)
                If InStr(LCase(Global_ImprimanteActive), LCase(StrPrinters(i))) > 0 Then
                    'On prend la valeur correcte
                    Global_ImprimanteActive = StrPrinters(i)
                    bResult = True
                    Exit For
                End If
            Next i
            If bResult = False Then
                Global_ImprimanteActive = "NO_PRINTERS"
                MsgBox ("Impossible de trouver l'imprimante active !")
            End If
        Else
            Debug.Print "No printers found"
            Global_ImprimanteActive = "NO_PRINTERS"
        End If
    end sub
    Ensuite j'utilise le code suivant pour utiliser l'imprimante PDF :

    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
    ' Déclaration d'un nouvel objet word application
    Dim wdApp As New Word.Application
    'Ouvre le fichier modèle à partir du chemin spécifié
    wdApp.Documents.Open FileNameDestination
    'Gestion des variables
    wdApp.ActivePrinter = Global_ImprimantePDF
    'on l'enregistre au format PDF
    Dim FileNamePDF As String
    FileNamePDF = left(FileNameDestination, Len(FileNameDestination) - 4) & ".pdf"
    wdApp.DisplayAlerts = wdAlertsNone
    wdApp.PrintOut , , , FileNamePDF, , , , , , , True
    'Temporisation car sinon Pb
    PauseTime = 4    ' Définit la durée de temporisation en secondes.
    Start = Timer    ' Définit l'heure de début.
    Do While Timer < Start + PauseTime
        EnCours = Timer    ' Définit l'heure actuelle.
        DoEvents    ' Donne le contrôle à d'autres processus.
    Loop
    wdApp.ActivePrinter = Global_ImprimanteActive
    'Ferme le document, quitte et release
    wdApp.ActiveDocument.Close
    wdApp.Quit
    Set wdApp = Nothing
    Ca marche bien !
    Le seul truc, c'est que Acrobat Reader s'ouvre sur le poste ....
    Si vous savez comment on peut faire pour que l'on ne le voit pas s'afficher

    Dernière question :
    Je test si le libéllé "PDF" est présent dans le nom de l'imprimante ... ce qui n'est pas la meilleure solution !
    De plus, faut-il également acrobat reader sur le poste utilisateur ?
    Lorsqu'on installe une imprimante virtuelle PDF, est-ce qu'acrobat est installé de base ?

    Merci d'avance pour toute vos réponses !

  13. #13
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    OK, je peux rajouter le test !

    As-tu (ou avez vous) des solutions pour ne pas que acrobat s'ouvre ?

    Merci d'avance !

  14. #14
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Personne n'a une petite idée pour qu'acrobat reader travaille en arrière plan ?

    Merci d'avance !

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Attends, je ne comprends pas... Quand tu lances une "impression sur acrobat distiller, par exemple, le travail se fait bien en arrière plan... Rien ne t'empêche de continuer ton travail.
    Maintenant, si tu veux le fermer depuis ton appli, as-tu essayer d'activer Acrobat (de l'appeler) avant de le désactiver, avec App. ...
    Je ne sais pas si ça marche avec une appli qui ne fait pas partie d'Office mais tu peux essayer...
    Ceci dit parce, pas plus que moi, personne n'a l'air d'avoir d'idée... Et il semblerait que les "savants" du forum sont déjà en congés...

    A+

  16. #16
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    En fait, je ne veux pas imprimer mes documents mais juste créer les fichiers pdf.
    Donc quand je lance la génération de document pdf à partir de de document word, je voudrais que mon applicatif n'ouvre pas le fichier pdf généré.

    Quand je dis tourne en "arrière plan", je veux dire en fait que cela ne ce voit pas !

    Tu imagines bien que si l'utilisateur voit les fichiers pdf, s'ouvrir un après l'autre, ça ne va pas convenir.

    Merci d'avance pour votre aide

  17. #17
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Personne n'a une petite idée pour que acrobat s'éxécute en tâche de fond ?
    Je n'ai pas trouvé cette propriété à la méthode PrintOut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wdApp.PrintOut , , , FileNamePDF, , , , , , , True
    Ce n'est d'ailleur surement pas à cette méthode que l'on peut déterminer si acrobat s'affiche ou pas.

    Merci d'avance pour votre aide !

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu m'as donné une idée. Quand on lance une appli office depuis une autre, tu passes en paramètre le type d'affichage de l'appli appelée (Plein écran, redimensionné... etc)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        n = "WINWORD.EXE " + critère2
        DemWord = Shell(n, 3)
    Dans cet exemple, 3 signifie ouvrir Word en plein écran.

    Tu peux peut-être regarder de ce côté là... à défaut d'autre chose...

    A+

  19. #19
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    C'est une idée à creuser effectivement !

    Le hic, c'est que c'est la fonction PrintOut qui lance acrobat automatiquement ... et pas la fonction shell !

    Je pense qu'il doit exister une autre méthode pour transformer du word en pdf ...
    Il doit bien exister une dll qui fait ça tout seul .... sans même avoir une imprimante virtuelle PDF. :

    Enfin, je crois que les utilisateurs se passeront du PDF ... ils le feront à la main ! LOL

    ++

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Macro Word pour convertir en pdf et emailer AUTOMATIQUEMENT
    essayer donc ça avec adobe acrobat 7 pro et M outlook !
    Moi cela me fait ConvertPDFAndEmail

    EUREKA !
    MERCI AUX ANGLAIS !!
    Version VBA pour les nuls (qui est mon cas !) !!

    tu ouvres la fenetre VBA
    De Word, onglet Outils, Macro, Visual Basic Editor
    De cette fenetre Visual Basic Editor, Outils, References,
    cocher AdobePDFMakerForOffice

    Tester vos numero de COMAddIns avec un espion !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub B()
    Dim PP
    PP = Application.COMAddIns.Count
    End Sub
    Selon le nombre PP, tester jusqu'à faire apparaitre ce qui suit :
    pour tous les commachins de 1 à PP (dans mon cas 2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub B()
    Dim ZZ
    ZZ = Application.COMAddIns(1).Description
    End Sub
    ZZ = "Macro complémentaire Accessibilité Microsoft Office pour le dessin"
    on zappe !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub B()
    Dim ZZ
    ZZ = Application.COMAddIns(2).Description
    End Sub
    Lorsque ZZ = "Acrobat PDFMaker Office COM Addin", là on garde !!!


    Puis exécuter la macro qui suit :
    dans mon cas avec un 2 pour identifier la méthode COMAddIns :

    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
    Option Explicit
    Public pOptions As AdobePDFMakerForOffice.ISettings
     
    Sub Pdf()
     
    'Dim DefPrinter
     
        'DefPrinter = Application.ActivePrinter
        'ActivePrinter = "Adobe PDF"
        Set pOptions = Application.COMAddIns(2).Object.GetCurrentConversionSettings()
            pOptions.AddTags = False
            pOptions.AddLinks = True
            pOptions.OutputPDFFileName = "G:\titi.pdf"
            pOptions.ViewPDFFile = False
        Application.COMAddIns(2).Object.CreatePDFEx pOptions
        'ActivePrinter = DefPrinter
        Call Mail()
    End Sub
    Sub Mail()
     
    Dim bStarted As Boolean
    Dim oOutlookApp As Outlook.Application
    Dim oItem As Outlook.MailItem
     
    On Error Resume Next
     
    'Get Outlook if it's running
    Set oOutlookApp = GetObject(, "Outlook.Application")
    If Err <> 0 Then
        'Outlook wasn't running, start it from code
        Set oOutlookApp = CreateObject("Outlook.Application")
        bStarted = True
    End If
     
    'Create a new mailitem
    Set oItem = oOutlookApp.CreateItem(olMailItem)
     
    With oItem
        'Set the recipient for the new email
       .To = "titi@huji.com"
        'Set the recipient for a copy
        '.CC = "recipient2@mail.com"
        'Set the subject
        .Subject = " "
        'The content of the document is used as the body for the email
        .Body = "Bonjour" & vbCrLf & "Veuillez trouver ci-joint le contrat demandé." & vbCrLf
        .Attachments.Add Source:="G:\titi.pdf"
        .Send
    End With
     
    If bStarted Then
        'If we started Outlook from code, then close it
        oOutlookApp.Quit
    End If
     
    'Clean up
    Set oItem = Nothing
    Set oOutlookApp = Nothing
     
    End Sub

    8)
    a+
    Lor

Discussions similaires

  1. [VBA-Excel]transformer un fichier word en .pdf
    Par Junness dans le forum VBA Word
    Réponses: 9
    Dernier message: 21/07/2006, 14h15
  2. [Librairies] [Lire sur un fichier Word ou PDF avec PHP]
    Par amatollah dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/05/2006, 08h58
  3. Convertir un document Word en PDF
    Par nancy54 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/04/2006, 18h39
  4. Réponses: 4
    Dernier message: 20/01/2006, 01h45
  5. [] Convertir un fichier word en pdf
    Par SpaceFrog dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/12/2002, 16h27

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