Mail auto sur excel via Outlook avec mise en forme

Résolu
Debutantexcel8 Messages postés 25 Statut Membre -  
Debutantexcel8 Messages postés 25 Statut Membre -
Bonjour,

J'ai mis en place une macro qui me permets d'afficher un mail sur outllook. J'ai joint le fichier dont le lien d'accès est https://www.cjoint.com/c/HJxuXWF8Qks
L'utilisateur clique sur le bouton "Mail de relance" situé dans le feuillet 1 cellule Y2, puis la macro lui remonte les mails déjà préparés à envoyer.
Je sollicite votre aide car il y a des aménagements que je voudrais faire sur ce mail (j'ai réécris la version idéale du mail que je voudrais avoir au moment de l'envoi du mail - voir le feuillet 1 mail avec les couleurs) :
- Je souhaiterais que la macro ajoute automatiquement 2 pièces jointes dont les chemins d'accès seront repris dans la macro (si possible)
- Mise en forme concernant certains mots du texte (en gras, couleur rouge, bleue, les espaces entre les paragraphes) - voir le feuillet 1 mail avec les couleurs
- De plus je souhaiterais aussi ajouter le Numéro du client comme mentionné dans le mail "Numéro X", il s'agit de la colonne L mais je ne sais comment procéder. Merci pour votre aide

3 réponses

  1. Debutantexcel8 Messages postés 25 Statut Membre 9
     
    J'ai pu trouver comment attacher automatiquement les pièces jointes mais reste à traduire la mise en forme (gras et couleurs) du texte du mail en langage VBA
    0
  2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    0
    1. Debutantexcel8 Messages postés 25 Statut Membre 9
       
      Bonjour,

      J'ai refait mon code, mais à chaque fenêtre outlook ouverte (ce qui est volontaire), il double, triple, quatriple le mail préparé dans la macro. Voici la macro, quelqu'un a t-il une idée pour empêcher cela merci.


      Sub mailoutlook()
          Dim xOutApp As Object
          Dim xOutMail As Object
          Dim xOutMsg As String
          
      For valeur_lign = 1 To 400
          If Cells(valeur_lign, 23) = "Alerte, mail à faire" Then
              Cells(valeur_lign, 25) = Date
              On Error Resume Next
              Set xOutApp = CreateObject("Outlook.Application")
              Set xOutMail = xOutApp.CreateItem(0)
              xOutMsg = xOutMsg & "<span style=""color:#80BFFF"">Bonjour,</span style=""color:#80BFFF"">"
              xOutMsg = xOutMsg & "<br/>"
              xOutMsg = xOutMsg & "<br/><span style=""color:#80BFFF"">Nous constatons qu'à ce jour, sauf erreur,  nous n'avons pas reçu le retour du ticket du client,</span style=""color:#80BFFF"">"
              With xOutMail
                  .To = "Email Address"
                  .CC = ""
                  .BCC = ""
                  .Subject = "Dossier X"
                  .HTMLBody = xOutMsg
                  .Attachments.Add ("C:\Cahier\CAZ\informations 20180913.docx")
                  .Display
              End With
              Set OutMail = Nothing
              Set OutApp = Nothing
              On Error GoTo 0
          'Set OutMail = Nothing
          'Set OutApp = Nothing
          End If
      Next
      End Sub
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Petit ajout à faire après le For :

    For valeur_lign = 1 To 400
       xOutMsg = vbNullString
       If Cells(valeur_lign, 23) = "Alerte, mail à faire" Then
    'etc...


    0
    1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Merci pijaku, j'avais la même proposition de réponse.
      Bonne journée.
      0
    2. Debutantexcel8 Messages postés 25 Statut Membre 9
       
      Merci beaucoup ça marche
      0