Lire un fichier joint dans un courrier sauvegardé dans un répertoire [Résolu]

Signaler
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

Je vais tenter d'expliquer clairement...

Je reçois un courrier avec pièce jointe (.xls) dans Outlook
Je copie le message tel quel dans "C:"
Ce fichier se nomme "Message.msg", par exemple

Je cherche un manière d'extraire le fichier Excel (j'en ai des milliers...) pour pouvoir le copier dans un autre répertoire.

Je sais bien comment lire un fichier dans un répertoire, avec ou sans récursivité, ainsi qu'un fichier joint dans Oulook, mais là, je ne vois pas du tout comment procéder ... le traiter comme objet Outlook ? comme fichier standard avec Open ?

Quelqu'un aurait une idée ?

MPi²

2 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
16
Finalement ...
Si ça peut intéresser quelqu'un, voici ma solution avec RDO
Reste à peaufiner

Sub Read_MSG()
    Dim objApp As New Outlook.Application
    Dim MyNameSpace As Outlook.NameSpace
    Dim Msg As RDOMail, Session As RDOSession
    Dim FileAttached As Variant, strMessage As String
    Dim strDate As String, strPath As String
   
    On Error GoTo Erreur
   
    strPath = "E:"
   
    Set MyNameSpace = objApp.GetNamespace("MAPI")
   
    Set Session = New Redemption.RDOSession
    Session.Logon
   
    strMessage = Dir(strPath & "*.msg")
    While strMessage <> ""
        Set Msg = Session.GetMessageFromMsgFile(strPath & strMessage)
        '*** créer une boucle pour lire tous les fichiers
        Set FileAttached = Msg.Attachments(1)
       
        'ajouter la date et l'heure au nom du fichier
        strDate = Replace(FileAttached.CreationTime, ":", "")
        FileAttached.SaveAsFile strPath & _
                                Left(FileAttached.Filename, Len(FileAttached.Filename) - 4) & _
                                " - " & strDate & ".xls"
        strMessage = Dir
    Wend
   
    Session.Logoff
    Set Session = Nothing
    Set objApp = Nothing
   
    Exit Sub
Erreur:
    MsgBox Err.Number & vbCrLf & Err.Description
End Sub

MPi²
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
16
Je me permets de répondre pour remettre le post en vie.... au cas où...

Je pense qu'avec CDO il y aurait moyen (?) mais je n'y connais rien encore ...
J'ai aussi vu que RDO (Outlook Redemption ?!?) pourrait être utile (?) mais encore là je n'y connais rien.

Si quelqu'un sait comment utiliser un de ces outils, qu'il se lève...
et m'explique s'il-lui-plaît...

Merci d'avance !

Sinon, bah... je remettrai les mails où ils étaient et ferai la copie à partir d'Outlook au risque de perdre les données... Il faut dire qu'au bureau on ne peut plus conserver plus de 50 megs de courrier et, dans mon cas, c'est l'enfer... j'en ai pour 1.5 gigs minimum. C'est pourquoi j'ai dû transférer ces tonnes de mails sur le disque dur...

MPi²