Impression Pièces Jointes

Résolu/Fermé
Signaler
Messages postés
116
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
11 août 2017
-
Messages postés
116
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
11 août 2017
-
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

Messages postés
116
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
11 août 2017
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
Messages postés
116
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
11 août 2017
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...!!!