Outlook VBA: enregistrer pièces-jointes de plusieurs mails

Fermé
Donou12 Messages postés 7 Date d'inscription vendredi 20 octobre 2017 Statut Membre Dernière intervention 2 janvier 2018 - 28 déc. 2017 à 14:45
Donou12 Messages postés 7 Date d'inscription vendredi 20 octobre 2017 Statut Membre Dernière intervention 2 janvier 2018 - 2 janv. 2018 à 10:22
Bonjour,

Voici mon problème: je souhaite pouvoir enregistrer les pièces jointes de plusieurs mails en même temps dans un dossier donné. (le nom du dossier est libre, disons "nouveau dossier").

J'ai déjà parcouru tous les sujets sur la question sur le net, la seule macro qui entraine une modification quelque part est celle-ci: (je l'ai mise dans un module)

Sub SaveAttachment()

'Declaration
Dim myItems, myItem, myAttachments, myAttachment As Object
Dim myOrt As String
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim i As Integer

'Boîte de dialogue simple pour le chemin de sauvegarde
myOrt = InputBox("Destination", "Save Attachments", "C:\PJ\")

On Error Resume Next

'Actions sur les objets sélectionnés
Set myOlExp = myOlApp.ActiveExplorer
Set myOlSel = myOlExp.Selection

'boucle
For Each myItem In myOlSel
Set myAttachments = myItem.Attachments
If myAttachments.Count > 0 Then


'for all attachments do...
For i = 1 To myAttachments.Count

'save them to destination
myAttachments(i).SaveAsFile myOrt & _
myAttachments(i).DisplayName
myItem.Body = myItem.Body & _
"File: " & myOrt & _
myAttachments(i).DisplayName & vbCrLf

Next i


End If

Next

Set myItems = Nothing
Set myItem = Nothing
Set myAttachments = Nothing
Set myAttachment = Nothing
Set myOlApp = Nothing
Set myOlExp = Nothing
Set myOlSel = Nothing

End Sub


Problème:
-il y a bien un msgbox qui apparaît (il faut à ce moment renseigner l'emplacement du dossier dans lequel on veut enregistrer les PJ), mais les pièces-jointes ne s'enregistrent pas dans l'emplacement renseigné. Elles s'enregistrent nulle part en fait.
-Le mail est modifié : l'emplacement renseigné dans le msgbox ainsi que le nom de la PJ s'inscrivent alors sur le mail! = JE VEUX PAS

Exemple: Ma PJ s'appelle "Test"

je mets dans le Msgbox mon emplacement cible : C:\Users\Toto\Documents
A la fin de la macro, mon mail comportera le texte : File: C:\Users\Toto\DocumentsTest.pdf


Donc:


1) Je souhaite que la macro tienne compte des mails qui sont sélectionnés uniquement.
2) Je souhaite enregistrer les pièces-jointes dans un dossier situé sur le bureau (le msgbox où il faut indiquer l'emplacement peut-être conservé, je pourrai ensuite ajouter par défaut le chemin d'un dossier sur le bureau)
3) Je souhaite garder intacts les mails et les PJ


J'ai pensé à modifier le code pour réaliser des copier/coller, mais sans succès.
Je vous remercie par avance et vous souhaite de très bonnes fêtes!

Donou

2 réponses

yg_be Messages postés 22693 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
28 déc. 2017 à 21:25
bonsoir, la macro travaille sur tous les mails, pas uniquement sue ceux qui sont sélectionnés?
0
Donou12 Messages postés 7 Date d'inscription vendredi 20 octobre 2017 Statut Membre Dernière intervention 2 janvier 2018
29 déc. 2017 à 10:06
Bonjour, merci beaucoup pour votre intérêt.

La macro fonctionne actuellement que sur 1 seul mail (même lorsque plusieurs sont sélectionnés).
C'est à dire que l'inscription File: C:\Users\Toto\DocumentsTest.pdf ne s'inscrit que sur un seul mail à la fois.
0