Impression Pièces Jointes

Résolu
Marrooi Messages postés 121 Statut Membre -  
Marrooi Messages postés 121 Statut Membre -
Bonjour,

je viens vous voir car je ne trouve pas de solution à mon problème, donc ici je suis sous Outlook 2010 héberger dans un sharedrive sur server distant, je reçois chaque jour des centaines de mail avec les factures de nos ventes en pièces jointe et de type .pdf.

Je voudrais en sélectionnant tout mes mails imprimer uniquement toutes les pièces jointes et pas passé mon temps à ouvrir chaque mail pour les imprimer 1 par 1...

j'ai essayé en sélectionnant mes mail et dans les options d'impression de coché la casé imprimer toutes les pièces jointes mais cela m'imprime tout le mail mais pas les pièces jointes sauf celle de mon dernier mail reçu...

J'ai vu qu'on parlait de macro ou VBA mais je n'y connais rien du tout...

J'ai essayer aussi d'exporter mes mail dans un dossier ce que j'ai réussi mais le problème est que je ne peux pas non plus imprimer toute les pièces jointes d'un coup...

Si vous avez la solution cela serait excellent.

Merci

2 réponses

  1. Marrooi Messages postés 121 Statut Membre 39
     
    Je viens de me lancer dans le VBA et donc j'ai trouvé en partie le code que j'ai modifié et le voici :

     Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hWnd As Long, ByVal lpszOp As String, _
        ByVal lpszFile As String, ByVal lpszParams As String, _
        ByVal lpszDir As String, ByVal fsShowCmd As Long) As Long
     
    'la macro d'impression, chems= chemin complet de la piece jointe
    Sub printPDF(chems)
        Dim Res As Long
        Dim chemin_de_MaPj As String
        chemin_de_MaPj = chems
        Res = ShellExecute(0, "print", chemin_de_MaPj, "", "", 0)
    End Sub
     
    Sub PrintAllPDF()
     
        Dim strFileName As String
        Dim strPath As String
     
        strPath = "c:\test\"
        strFileName = Dir(strPath + "*.pdf", vbNormal)
        Do While strFileName <> ""
     
            LeFichier = strPath + strFileName
            printPDF (LeFichier)
            strFileName = Dir
        Loop
     
    End Sub
     
    Sub detache_PJ()
        Dim MonOutlook As Outlook.Application
        Dim Mail As Object
        Dim LeMail As Outlook.MailItem
        Dim LesMails As Object
        Set MonOutlook = Outlook.Application
        Set LesMails = MonOutlook.ActiveExplorer.Selection
        For Each LeMail In LesMails
                 Dim pj As Attachment
                For Each pj In LeMail.Attachments
                    If Right(UCase(pj.FileName), 4) = ".PDF" Then
                        LeFichier = "c:\test\" & pj.FileName
                        pj.SaveAsFile (LeFichier)
     
                    End If
                Next pj
        Next LeMail
        Set LesMails = Nothing
    End Sub
     
    Sub detache_et_imprime()
        
        Call detache_PJ
        Call PrintAllPDF
     
        MsgBox "Opération terminée, cliquez sur OK pour finir."
        Kill "C:\test\*.pdf"
     
    End Sub
    
    


    Maintenant comme j'ai vraiment beaucoup de mail avec pièces jointes par jour cela est embêtant qu'il ouvre à chaque fois adobe reader, est-ce qu'il y a une possibilité qu'il imprime sans passé par ca et donc me permettre de toujours travailler pendant qu'il imprime au lieu d'attendre.

    Je précise aussi que je travaille dans le Cloud avec mon entreprise et je ne sais pas si cela peut avoir un lien.

    Merci en tout cas
    0
  2. Marrooi Messages postés 121 Statut Membre 39
     
    Par contre je viens de me rendre compte d'une chose, lorsque dans mes mails j'ai des pièces jointes qui portent le même nom elle ne s'imprime pas enfin fait il imprime le premier mail avec la pièce jointe mais les autres qui ont le mêmes noms la il ne l'imprime pas donc je dois surement avoir une modification à faire dans le code.

    Si quelqu'un à une idée car je galère la...!!!
    0