IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Macros et VBA Excel Discussion :

Mail outlook via macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2019
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 133
    Points : 79
    Points
    79
    Par défaut Mail outlook via macro
    Bonjour,

    J'essaie d'envoyer un mail Outlook via une macro et pour le moment je suis bloqué sur un point et j'espère trouver la solution ici.
    Voici mon code pour commencer:
    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
    Sub SendMail()
    Dim shp, shp1 As Shape
     
    Dim ol As Outlook.Application
    Dim mi As Outlook.MailItem
    Dim doc As Word.Document
     
     
    Set shp = ActiveSheet.Shapes("ZT")
    Set shp1 = ActiveSheet.Shapes("ZoneText1")
     
    Set ol = New Outlook.Application
    Set mi = ol.CreateItem(olMailItem)
     
    mi.Display
     
    mi.To = shp.TextFrame.Characters.Text
    mi.CC = shp1.TextFrame.Characters.Text
    mi.Subject = "Suivi des recettes" & Range("J24") & "_" & Range("J1")
     
    Set doc = mi.GetInspector.WordEditor
     
    doc.Range(0, 0).InsertBefore "Bonjour," & vbNewLine & vbNewLine & "Veuillez trouver ci-après les informations relatives blabla." & vbNewLine & vbNewLine & _
    "     I.  Overview " & Range("J24") & ":" & vbNewLine & vbNewLine & "Ci-dessous le nombre total des recettes" & vbNewLine & vbNewLine
     
    ActiveSheet.Range("AM14:AR21").Copy
     
    'Je souhaite coller le tableau copié dans la suite du corps du mail
     
    End Sub
    Mon objectif est simple, c'est de coller le tableau Range("AM14:AR21") dans la suite du corps du mail. Je n'arrive pas à le faire.
    Pourriez-vous m'aider svp ?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Ré-Bonjour,

    Une petite recherche sur ce site, méthode : création du range en format html avec ou sans style CSS

    https://www.developpez.net/forums/d1...cdo-style-css/

    D'autres méthodes existent par exemple :

    En collant la plage dans un fichier Word sauver en fichier html exemple sur le site de rondebruin
    Ou encore en créant une image du range, et le coller en tant que tel dans l'email ( mais dans ce cas pas de copier coller dans le corps du mail possible par le destinataire )

    Bat,
    MFoxy
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2019
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 133
    Points : 79
    Points
    79
    Par défaut
    Elle est un peu compliquée la méthode avec le HTML. Pas moyen de le faire avec GetInspector.WordEditor ?

    Merci pour ton aide.

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Non testé. Remplacer la ligne 26 par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim wdRange As Word.Range
    Set wdRange = doc.Range(0, doc.Characters.Count)
    wdRange.InsertAfter vbCrLf
    ActiveSheet.Range("AM14:AR21").Copy
    wdRange.Paste
    Set wdRange = Nothing
    Cela devrait marcher pour des tableaux simples (sans saut de ligne, etc.)
    Cordialement.

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2019
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 133
    Points : 79
    Points
    79
    Par défaut
    @Eric Ca marche pas. En tout cas merci bien pour ton aide.
    Finalement je l'ai fait avec le HTML. Voici le bout code que j'ai trouvé quelque part dans un ancien fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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
    Et on rajoute ce bout au Sub de l'envoie du mail:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Call createJpg("Sheet", "B74:I143", "DashboardFile")
     
     TempFilePath = Environ$("TEMP") & "\"
                .Attachments.Add TempFilePath & "DashboardFile.png", olByValue, 0
     
                .HTMLBody = .HTMLBody _
                    & "<img src='cid:DashboardFile.png'" _
                    & "<br>"
    Et tout va bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Insertion image JPG dans le corps du mail outlook - Via Macro Excel
    Par Papt18 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2016, 11h55
  2. [XL-2010] récupération de mail outlook via Excel
    Par illight dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 29/11/2013, 09h34
  3. [Flex4] Lien mail (outlook) via firefox
    Par polo31 dans le forum Flex
    Réponses: 0
    Dernier message: 22/06/2012, 14h54
  4. [XL-2003] Envoi mail Outlook via VBA Excel erreur
    Par altra dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/08/2009, 16h50
  5. envoi mail automatique via macro excel
    Par ellewided dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 14/08/2009, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo