VBA Outlook 2010 - Impression de toute les pièces jointes

Word, PowerPoint, Outlook, Access et tous les autres logiciels de la suite Office (sauf Excel)
Avatar du membre
Juice
Membre impliqué
Membre impliqué
Messages : 1'141
Appréciations reçues : 101
Inscrit le : 28 novembre 2017
Version d'Excel : Microsoft Excel 2010

Message par Juice » 22 mai 2018, 11:07

Bonjour la communauté,

Je viens vers vous car je ne trouve pas de réponse à mon problème sur Internet et le Forum.

Il me faudrait, via VBA, la possibilité d’imprimer la totalité des pièces jointes d'un email :

C'est à dire, des fichiers zipper, des PDF, des Word, des Excel, des PNG etc...

Je pourrais imprimer ces pièces jointes manuellement en les ouvrants une par une, mais il y a une très grande quantité de fichier, et cela rend la tâche fastidieuse.

Merci par avance pour vos retours et pour votre aide
Dans l'incapacité de continuer à vous aidez sur vos fichiers, je vous prie de bien vouloir m'excuser et vous invite à ouvrir un nouveau sujet pour reprendre vos problèmes avec un membre actif du Forum.

En espérant revenir très vite :)
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'389
Appréciations reçues : 198
Inscrit le : 13 juin 2016
Version d'Excel : 2013 FR 64 bits

Message par thev » 16 février 2019, 14:09

Bonjour,

ci-dessous exemple de code à reporter dans ThisOutlookSession
Private WithEvents email As Outlook.MailItem

Private Sub Application_ItemLoad(ByVal Item As Object)
    If Item.Class <> olMail Then Exit Sub
    
    'assignation variable objet email pour activation des evts email
    Set email = Item
End Sub

Private Sub email_Open(Cancel As Boolean)
    Dim pièce_jointe As Attachment
    Dim nom_fichier As String
    Dim shApp As Object
    
    ' Sélection des emails ayant un objet spécifique
    'If Not email.Subject Like "*xxxxxxxxxx*" Then Exit Sub
    
    ' Assignation application Shell
    Set shApp = CreateObject("shell.application")
    
    ' Lecture et impression des pièces jointes
    For Each pièce_jointe In email.Attachments
        With pièce_jointe
            nom_fichier = Environ("tmp") & "\" & .FileName
            .SaveAsFile (nom_fichier)   'création fichier temporaire
            shApp.ShellExecute nom_fichier, "", "", "print", 0  'lancement impression
            While Not shApp.Windows Is Nothing  'attente fermeture fenêtre application relative à l'extension du fichier
                DoEvents
            Wend
            Kill nom_fichier    'suppression fichier temporaire
        End With
    Next pièce_jointe
    
    ' Fermeture email
    email.Close (olDiscard)
End Sub
Avatar du membre
Juice
Membre impliqué
Membre impliqué
Messages : 1'141
Appréciations reçues : 101
Inscrit le : 28 novembre 2017
Version d'Excel : Microsoft Excel 2010

Message par Juice » 18 février 2019, 09:08

Bonjour Thez,

Merci pour ton aide :)

Il faut que je retrouve le fichier qui m'a fais ouvrir ce sujet et que j'essaye ton code!

Cdt!
Dans l'incapacité de continuer à vous aidez sur vos fichiers, je vous prie de bien vouloir m'excuser et vous invite à ouvrir un nouveau sujet pour reprendre vos problèmes avec un membre actif du Forum.

En espérant revenir très vite :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message