Convertir une image OLE en "vraie" image

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nicolas Lefresne

XLDnaute Nouveau
Bonjour à tous !

J'espère que le sujet de mon post est clair, de toute façon voici des détails au sujet du problème que je rencontre :

Je cherche dans le cadre de mon travail a récupérer des pièces jointes d'e-mail Outlook 2003 et à les enregistrer sur un disque dur local, tout ça depuis Excel 2003.
Pour ce faire, j'ai écrit le code suivant :
Code:
Sub recupPJ()
    Set myolApp = CreateObject("Outlook.Application")
    Set openedEmail = myolApp.Inspectors.Item(1).CurrentItem
    For Each att In openedEmail.Attachments
        att.SaveAsFile "D:\PJ\" & att.FileName
    Next
End Sub
Très simple donc, mais qui marche et c'est le principal ! Enfin il ne marche pas pour tout...

Quand une image est insérérée dans le corps du texte, c'est la panique ! Pourquoi ? Parce que cette image n'en est pas vraiment une, et qu'elle n'a pas de FileName... Voici un exemple :
image001.jpg

Comme vous pouvez le voir, cette pièce-jointe est de type "olOLE". Ce que je cherche à faire c'est enregistrer le fichier comme une image sur mon disque.

Y a-t-il une solution ou ai-je atteint les limites ?

Ce que j'ai essayé :
- Récupérer le HTMLBody du mail voir s'il n'y avait pas un chemin qui trainait mais non...
- Enregistrer le fichier tout de même grâce à son Displayname, mais après je me retrouve avec un fichie sans extension et non reconnu par n'importe quel éditeur d'image...

Si quelqu'un sait me dire comment récupérer cette pièce jointe et en faire une image, je le bénis ! Merci d'avance 🙂

Nicolas Lefresne
 

Pièces jointes

  • image001.jpg
    image001.jpg
    33.7 KB · Affichages: 56
  • image001.jpg
    image001.jpg
    33.7 KB · Affichages: 55
Dernière édition:
Re : Convertir une image OLE en "vraie" image

Merci pour le lien, je vais le lire de ce pas !
Par contre je te promets que j'ai cherché pendant facilement 2 heures cet après-midi sur le net, en anglais, en français avec au moins 100 recherches différentes et que j'ai jamais rien trouvé qui ressemblait à mon problème ! Je dois pas être très doué faut croire... Merci beaucoup en tout cas !
 
Re : Convertir une image OLE en "vraie" image

Bonsoir

Je suis bien content de savoir que tu as cherché car j'ai observé que beaucoup de petits nouveaux ici ne prennent plus le temps de chercher.

Et dis-toi que la langue de VBA étant l'anglais, il est à mon sens, très instructif de se forcer à penser anglais, à chercher anglais.
(c'est en tout cas mon mode de fonctionnement 😉 )

Et redis-nous si le lien de mon précédent message a pu t'être utile.
 
Re : Convertir une image OLE en "vraie" image

Mmh pour être honnête je ne l'ai pas testé car je n'ai pas mon projet à la maison, mais ce code ne marchera pas. La raison : cette partie du code :
Code:
    For Each objAttachment In colAttachments
        MyFile = objAttachment.FileName
        DateStamp = Format(MySelectedItem.CreationTime, " - yyyymmdd_hhnnss")
        intPos = InStrRev(MyFile, ".")
        If intPos > 0 Then
            MyFile = Left(MyFile, intPos - 1) & DateStamp & Mid(MyFile, intPos)
        Else
            MyFile = MyFile & "DateStamp"
        End If
        
        objAttachment.SaveAsFile (FolderPath & "\" & MyFile)
    Next
En effet comme je l'ai indiqué dans l'OP, la propriété FileName ne peut pas être utilisée sur des objets OLE insérés dans le corps du texte de l'e-mail, et il est donc impossible de sauvegarder l'image qui je le rappelle n'est pas une image mais un objet OLE.

Néanmoins merci pour le lien ! Je me disais aussi que j'avais beaucoup cherché en vain !

Si quelqu'un d'autre a une idée 🙂
 
Re : Convertir une image OLE en "vraie" image

Re

Bon, si tu enregistres un mail avec
une image est insérérée dans le corps du texte
au format HTML
Est-ce tu récupères un fichier image dont le dossier créé ?

PS; Testes quand même leur code puisqu’ils disent:
You've probably come across this at least once; You receive a nicely HTML formatted message with embedded pictures so the sender can tell the story with the pictures and when you try to save the pictures you can only save them as a bmp-file. Or; you receive a fun e-mail with an animated gif-file and when you try to save it you can only save or copy it as a bmp-file which will of course break the animation.

This How To article explains how you can save the embedded pictures in their original file format.

EDITION: Ca se complique Ce lien n'existe plus
Et on sort du VBA pour entrer dans le .NET
Mais le clipboard est peut-être une piste à suivre.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour