Impression Pièces Jointes

Résolu
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. 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
    1. 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