Extraire pièce jointe outlook

Anto35200

XLDnaute Occasionnel
Bonjour au forum,


Grand débutant en VBA, je cherche une macro qui puisse s'exécuter depuis Excel (si possible).

La macro devrait:


1-Aller chercher des fichiers Excel dans un dossier de ma Boite de réception intitulé "PAYS"

2-Récupérer tous les mails de ce dossier PAYS de la manière suivante :

a)Copier les pièces jointes de chaque expéditeur vers un chemin spécifique nommé C:\PRODUITS\... : par exemple
Si adresse mail expéditeur ...@congo.com avec pièce jointe produitA.xls, renommer ce fichier en banane.xls
Si adresse mail expéditeur ...@bresil.com avec pièce jointe produitB.xls, renommer ce fichier en sucre.xls

b) Archiver ensuite ces mails dans un dossier de la boîte de réception ARCHIVES

J'espère avoir été clair dans mes explications.



Merci d'avance.
 

Yaloo

XLDnaute Barbatruc
Re : Extraire pièce jointe outlook

Bonsoir plimosin,

Vois avec cette macro venant de developpez.com et adaptée à ta demande.
VB:
Option Explicit
'------------------------------------------------------------------------
'Nécessite d'activer la référence Microsoft Outlook xx.xx Object Library
'------------------------------------------------------------------------
Dim x As Integer
    'La boite de réception, la boite des éléments supprimés et tous leurs
    'sous dossiers sont pris en compte.
     Sub ExportePiecesJointes()
    Dim Ol As New Outlook.Application
    Dim Ns As Outlook.Namespace
    Dim Dossier As Outlook.MAPIFolder
 
    Set Ns = Ol.GetNamespace("MAPI")
    Set Dossier = Ns.Folders(1)
 
    SearchFolders Dossier
    x = 0
End Sub
Private Sub SearchFolders(ByVal Fld As Outlook.MAPIFolder)
Dim y As Integer, nom$, Email$
Dim OLmail 'As Outlook.MailItem
Dim pceJointe As Outlook.Attachment
Dim SousDossier As Outlook.MAPIFolder
 
For Each SousDossier In Fld.Folders
    If SousDossier.DefaultItemType = 0 And SousDossier = "PAYS" Then
        For Each OLmail In SousDossier.Items
            If Not OLmail.Attachments.Count = 0 Then
                For y = 1 To OLmail.Attachments.Count
                Email = OLmail.SentOnBehalfOfName
                  Select Case Split(OLmail.SentOnBehalfOfName, "@")(1)
                    Case "congo.com": nom = "\banane.xls"
                    Case "bresil.com": nom = "\sucre.xls"
                  End Select
                     Set pceJointe = OLmail.Attachments(y)
                     x = x + 1
                     pceJointe.SaveAsFile "C:\PRODUITS" & nom
                    Set pceJointe = Nothing
                Next y
            End If
        Next OLmail
    End If
    SearchFolders SousDossier
Next SousDossier
End Sub

A te relire

Martial
 

Yaloo

XLDnaute Barbatruc
Re : Extraire pièce jointe outlook

Bonjour plimosin, le forum,

Je ne comprends pas non plus car je viens de reprendre les macros de mon post#2, ça fonctionne très bien chez moi ;)
Tu n'aurais pas omis la dernière ligne End Sub ?

A te relire

Martial
 

Anto35200

XLDnaute Occasionnel
Re : Extraire pièce jointe outlook

Bonjour Yaloo,

J'ai réessayé le code, mais voilà cette fois-ci , j'ai ce message d'erreur :

"Erreur d'exécution'-1698430703(9ac40111)': Impossible de trouve le fichier C:\Users\...Documents@Fichiers Outlook\Fichier de données Outlook - nom.prénom@yahoo.com.pst."

Code:
For Each SousDossier In Fld.Folders


Pourtant, j'ai bien les dossiers PAYS et ACHIVES dans la Boite de réception, et dans le dossier PAYS, j'ai les mails des expéditeurs.

:confused:
 

Yaloo

XLDnaute Barbatruc
Re : Extraire pièce jointe outlook

Bonjour plimosin,

Outlook est-il ouvert lorsque tu lances la macro ?
As-tu plusieurs compte dans Outlook, yahoo.fr mais par exemple orange.fr, free.fr etc...
Si oui, ton compte yahoo est-il le compte principal ?
Normalement, si Outlook est ouvert, il ne me semble pas que ça aille chercher dans C:\.... bizarre, bizarre ...

A te relire

Martial
 

Anto35200

XLDnaute Occasionnel
Re : Extraire pièce jointe outlook

Outlook est ouvert étant donné que je lance la macro depuis la messagerie.

Dans Outlook, je n'ai qu'un compte :
Code:
nom.prénom@yahoo.com.pst."
nétait qu'un exemple.

Il faut bien écrire le code dans la messagerie ? J'ai un doute.
 

Anto35200

XLDnaute Occasionnel
Re : Extraire pièce jointe outlook

Bonjour Yaloo,

La référence Outlook est bien activée, (voir copie d'écran), malgré celà, il y a toujours le même message "Erreur de compilation : Type défini par l'utilisateur non défini" à la ligne :
Code:
Private Sub SearchFolders(ByVal Fld As Outlook.MAPIFolder




J'ai la version Microsoft Outlook 2010.

:(
 

Pièces jointes

  • Object Library.jpg
    Object Library.jpg
    38.6 KB · Affichages: 175
  • test PJ messagerie.xlsm
    17.3 KB · Affichages: 73
  • test PJ messagerie.xlsm
    17.3 KB · Affichages: 88
  • test PJ messagerie.xlsm
    17.3 KB · Affichages: 103

Yaloo

XLDnaute Barbatruc
Re : Extraire pièce jointe outlook

Bonjour Plimosin, le forum,

Chez moi avec 2013 ça fonctionne, si j'enlève la référence à Outlook, j'ai le même message que toi. Il y a peut-être un problème avec la version 2010 ou avec ton fichier msoutl.olb
Je regarderai avec 2010 au boulot cet après-midi.

A+

Martial
 

Yaloo

XLDnaute Barbatruc
Re : Extraire pièce jointe outlook

Re,

Ton fichier du post#11 fonctionne bien au boulot également, Office 2010.
Il y a peut-être un problème au niveau de ton fichier moutl.olb.
Peut-être faire une réparation de Office ???

A+

Martial
 

Anto35200

XLDnaute Occasionnel
Re : Extraire pièce jointe outlook

Bonjour Yaloo,


Après avoir revu le problème, je me suis rendu compte que je n'avais pas activé cette référence dans Excel. Je l'avais seulement activé que dans Outlook. :eek:


Option Explicit
'------------------------------------------------------------------------
'Nécessite d'activer la référence Microsoft Outlook xx.xx Object Library
'------------------------------------------------------------------------

Peux-tu me confirmer qu'il faut bien l'activer dans Outlook et Excel ?

Une fois cette référence activée dans Excel, j'ai maintenant ce message d'erreur (voir pièce jointe).
Qu'est-ce qui ne vas pas ??
 

Pièces jointes

  • message erreur.jpg
    message erreur.jpg
    49.4 KB · Affichages: 161
  • message erreur.jpg
    message erreur.jpg
    49.4 KB · Affichages: 102
  • message erreur.jpg
    message erreur.jpg
    49.4 KB · Affichages: 93

Yaloo

XLDnaute Barbatruc
Re : Extraire pièce jointe outlook

Bonjour plimosin, le forum,

Cette référence doit être d'office dans Outlook et tu ne dois pas pouvoir la supprimer.
Il faut bien cocher cette référence dans Excel.

Je ne comprends pas trop pourquoi tu as ce message d'erreur.

A+

Martial
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12