Sauve PJ d'outlook (boite de réception) sous c:\pj\ via Exce
Résolu/Fermé
PYGOS69
Messages postés
452
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
10 octobre 2023
-
Modifié le 5 mai 2023 à 17:37
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - 10 mai 2023 à 09:05
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - 10 mai 2023 à 09:05
A voir également:
- Sauve PJ d'outlook (boite de réception) sous c:\pj\ via Exce
- Accusé de reception outlook - Guide
- Se connecter à ma boite hotmail - Guide
- Accusé de reception gmail - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Boite gmail saturée - Guide
2 réponses
ozone_
Messages postés
1518
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
2 juin 2023
478
5 mai 2023 à 17:38
5 mai 2023 à 17:38
Hello,
Voici une macro qui peut faire l'affaire :
Note: il faut, dans l'interface VBA, aller dans Outils > Référence puis chercher et cocher "Microsoft Outlook 14.0 Object Library" avant de pouvoir utiliser cette macro.
Sub EnregistrerLesPiecesJointesEtDeplacerLesEmails() Dim objOL As Outlook.Application Dim objNS As Outlook.Namespace Dim objFolder As Outlook.MAPIFolder Dim objItem As Object Dim objAttachment As Attachment Dim strFolderPath As String Dim strFolderName As String ' Spécifiez le chemin du dossier où les pièces jointes seront enregistrées strFolderPath = "C:\pj\" ' Spécifiez le nom du dossier où les emails traités seront déplacés strFolderName = "Traité" On Error Resume Next ' Instancie un objet application Outlook Set objOL = CreateObject("Outlook.Application") ' Obtient le namespace MAPI Set objNS = objOL.GetNamespace("MAPI") ' Obtient le dossier Boîte de réception Set objFolder = objNS.GetDefaultFolder(olFolderInbox) ' Parcourt chaque élément dans le dossier Boîte de réception For Each objItem In objFolder.Items ' Vérifie si l'élément est un MailItem If objItem.Class = olMail Then ' Parcourt chaque pièce jointe dans le MailItem For Each objAttachment In objItem.Attachments ' Enregistre la pièce jointe dans le chemin du dossier spécifié objAttachment.SaveAsFile strFolderPath & objAttachment.FileName Next objAttachment ' Déplace le MailItem dans le dossier spécifié objItem.Move objFolder.Folders(strFolderName) End If Next objItem Set objAttachment = Nothing Set objItem = Nothing Set objFolder = Nothing Set objNS = Nothing Set objOL = Nothing MsgBox "Les pièces jointes ont été enregistrées et les emails ont été déplacés.", vbInformation End Sub
PYGOS69
Messages postés
452
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
10 octobre 2023
21
Modifié le 9 mai 2023 à 15:40
Modifié le 9 mai 2023 à 15:40
Sub EnregistrerLesPiecesJointesEtDeplacerLesEmails()
Dim objOL As Outlook.Application
Dim objNS As Outlook.Namespace
Dim objFolder As Outlook.MAPIFolder
Dim objItem As Object
Dim objAttachment As Attachment
Dim strFolderPath As String
Dim strFolderName As String
Dim strSharedEmail As String
' Chemin du dossier spécifié en H1
strFolderPath = Range("h1").Value
' Adresse e-mail du compte partagé (générique)
strSharedEmail = Range("h8").Value
' Spécifiez le nom du dossier où les emails traités seront déplacés
strFolderName = Range("h4").Value
' "Terminés-traités"
On Error Resume Next ' gestion des erreurs
' Instancie un objet application Outlook
Set objOL = New Outlook.Application
' Obtient le namespace MAPI
Set objNamespace = objOL.GetNamespace("MAPI")
' Obtient le dossier Boîte de réception
Set objFolder = objNamespace.GetSharedDefaultFolder(objNamespace.CreateRecipient(strSharedEmail), olFolderInbox)
' Obtenir une référence au dossier "Traité"
Set objDestFolder = objNamespace.GetDefaultFolder(olFolderInbox).Folders(strFolderName)
' Parcourt chaque élément dans le dossier Boîte de réception
For Each objItem In objFolder.Items
' Vérifie si l'élément est un MailItem
If objItem.Class = olmail Then
' Parcourt chaque pièce jointe dans le MailItem
For Each objAttachment In objItem.Attachments
' Enregistre la pièce jointe dans le chemin du dossier spécifié
objAttachment.SaveAsFile strFolderPath & objAttachment.Filename
Next objAttachment 'suivant
' Déplace le MailItem dans le dossier spécifié..........................NE FONCTIONNE PAS le déplacement se fait sur le dossier de ma bal et non sur le dossier de ma bal spécifiée....
objItem.Move objDestFolder
End If
Next objItem ' suivant
Set objAttachment = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objOL = Nothing
MsgBox "Les pièces jointes ont été enregistrées et les emails ont été déplacés ! Merci d'avoir patienté ......"", vbInformation"
End Sub
Modifié le 5 mai 2023 à 17:55
Bonjour et Merci ozone,
Je testerais cela avant de revenir vers toi ! :)
J'ai essayé chez moi de mettre en place la macro, chez moi, mais comme j'ai Excel 365, pas de référence "Microsoft Outlook 14.0 Object Library".
Je tenterais Mardi sous EXCEL 2010 en entreprise.... A ce sujet si je veux indiquer que la bal est une bal générique avec une adresse et non une bal personnelle, comment dois-je faire ?
Je travaille avec plusieurs bals.....
Cdlt
5 mai 2023 à 17:48
Bonjour,
Noter au passage que si la sécurité interdit aussi de mettre en oeuvre des macros ou qu'elles sont difficiles à faire fonctionner, certains logiciels mail (par exemple The Bat!) font ça en 2 clics: le premier pour choisir de séparer les pièces jointes du corps du mail, le deuxième pour choisir le dossier de destination.
Le souci est si le mail n'est pas propre à chaque PC mais centralisé en réseau dans l'entreprise, à titre d'exemple, la licence 50 utilisateurs coûte alors 60$.
9 mai 2023 à 10:16
Bonjour,
Tout fonctionne ! Merci !
Bonne journée !
9 mai 2023 à 12:44
Hello,
Peut être en essayant ainsi mais je peux pas tester chez moi :
9 mai 2023 à 18:38
Y'a du mieux alors !
On peut tester un boucle comme celle ci à la place afin de voir si ça change la donne