Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Image qui ne s'affiche pas dans un mail Outlook


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Image qui ne s'affiche pas dans un mail Outlook
    Bonjour,

    J'envoie un mail Outlook avec le VBA. Et ce mail contient un graphique converti en image .png
    Le problème c'est que cette image est bien visible aux internes de la société, mais invisible chez les autres collaborateurs externes.

    Ci dessous le code que j'utilise:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    Sub createJpg(Namesheet As String, nameRange As String, nameFile As String)
        ThisWorkbook.Activate
        Worksheets(Namesheet).Activate
        Set Plage = ThisWorkbook.Worksheets(Namesheet).Range(nameRange)
        Plage.CopyPicture
        With ThisWorkbook.Worksheets(Namesheet).ChartObjects.Add(Plage.Left, Plage.Top, Plage.Width, Plage.Height)
            .Activate
            .Chart.Paste
            .Chart.Export Environ$("TEMP") & "\" & nameFile & ".png", "PNG"
        End With
        Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Delete
    Set Plage = Nothing
    End Sub
     
     
    Sub EnvoiSTAT()
     
    Application.ScreenUpdating = False
     
        Dim OutApp As Object
        Dim OutMail As Object
        Dim strbody As String
        Dim olFormatHTML As String
     
     
                Set OutApp = CreateObject("Outlook.Application")
                OutApp.Session.Logon
     
                Set OutMail = OutApp.CreateItem(0)
                 strbody = Sheets("Options").Range("C7")
                On Error Resume Next
                    With OutMail
                        .To = Sheets("Options").Range("C4")
                        .CC = Sheets("Options").Range("C5")
                        .BCC = ""
                        .Subject = Sheets("Options").Range("C7")
                        .BodyFormat = olFormatHTML
                      .HTMLBody = Sheets("Options").Range("C9") & "<br>"
                      <BR>Cordialement"
                        '.Display 'Pour afficher en cas de vérif
     
                        Call createJpg("Evolution", "B4:H51", "DashboardFile")            
     
                        TempFilePath = Environ$("TEMP") & "\"
                .Attachments.Add TempFilePath & "DashboardFile.png", olByValue, 0
     
     
                .HTMLBody = .HTMLBody _
                    & "<img src='cid<img src="images/smilies/icon_biggrin.gif" border="0" alt="" title=":D" class="inlineimg" />ashboardFile.png'" _
                    & "<br>" 
     
     
                        .Display
     
                    End With
                        On Error GoTo 0
     
                    Set OutMail = Nothing
                    Set OutApp = Nothing
     
     
    End Sub


    Pour faire simple, l'image est invisible aussi quand je l'envoie sur mon gmail. Pourriez-vous me donner un coup de main sur ce sujet svp ?

    Cdt;

  2. #2

  3. #3
    Expert éminent
    Cela dépend de la messagerie.

    essaye comme cela

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub NewMessage_With_Embedded_Dmitry()
        Dim olApp As Outlook.Application
        If Application.Name = "Outlook" Then
            Set olApp = Application
        Else
            Set olApp = CreateObject("outlook.application")
        End If
        Set NS = olApp.Session
     
        Set objOutlookMsg = olApp.CreateItem(olMailItem)
     
        Set objOutlookRecip = objOutlookMsg.Recipients.add("test@toto.com")
        objOutlookRecip.Type = olTo
        objOutlookMsg.Subject = "test"
     
        ' add graphic as attachment to Outlook message
        Set colAttach = objOutlookMsg.Attachments
        Set l_Attach = colAttach.add("C:\Users\Public\Pictures\pouce.jpg")
        l_Attach.propertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/proptag/0x370E001F", "image/jpeg"
        'Change From 0x370eE001E
        l_Attach.propertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/proptag/0x3712001F", "myident"
        'Changed from 0x3712001E
        'HideAttachments
        objOutlookMsg.propertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8514000B", True
        'Set body format to HTML
        objOutlookMsg.BodyFormat = olFormatHTML
        objOutlookMsg.HTMLBody = "<html><p>This is a picture.</p>" & _
                "<img src='cid:myident' >"
     
        objOutlookMsg.Save
        objOutlookMsg.Display
        'objOutlookMsg.Send
    End Sub

  4. #4
    Membre du Club
    Oui l'image s'affiche en pièce jointe.
    Merci pour la proposition, même si je l'ai pas encore testé. L'idéal pour moi est de résoudre le problème avec le code que j'ai utilisé. Y-a t'il une proposition pour cela ?

  5. #5

  6. #6
    Membre du Club
    J'ai combiné les deux codes et ça marche comme sur des roulettes. Merci beaucoup !!

###raw>template_hook.ano_emploi###