Microsoft 365 Envoi mail : mise en forme du corps de mail

raf26

XLDnaute Occasionnel
Bonjour,

J'ai un fichier avec macro envoi mail.

Tout marche nickel.

Le corps du mail reprend des cellules de la feuille "joursferies" A42:A48.

La cellule A42 contiendra une valeur, les autres de A43:A48 pas forcément.

Comment faire pour que "Cordialement" soit affiché sous la dernière ligne remplie et non pas tout en bas si j'ai des cellules vides (par exemple si seules A42 et A43 sont remplies, "Cordialement" juste en dessous).

Actuellement, la macro positionne le mot "Cordialement" en bas du corps, après la valeur de A48, même si elle est vide et laisse un vide (voir la barre rouge sur la capture d'écran).

J'espère avoir été assez clair dans ma demande.

Ci-joint un fichier test épuré.

Bonne journée

Cordialement
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint une toute petite fonction :
Code:
Private Function Extraire(c As Range) As String
    If c.Text <> "" Then Extraire = c.Text & "<BR><BR>"
End Function
puis ses appels pour construire la variable strBody :
VB:
 With Sheets("joursferies")
        strBody = "Bonjour,<br><br>Veuillez trouver en pièce jointe ma demande de congés pour" _
                & .Range("D45") & " : <br><br>"

        strBody = strBody _
                & Extraire(.Range("A42")) _
                & Extraire(.Range("A43")) _
                & Extraire(.Range("A44")) _
                & Extraire(.Range("A45")) _
                & Extraire(.Range("A46")) _
                & Extraire(.Range("A47")) _
                & Extraire(.Range("A48")) _
                & "Cordialement"

    End With

Je ne l'ai pas testé mais devrait fonctionner.

Cordialement
 

Pièces jointes

  • Fichier Essai.xlsm
    163.2 KB · Affichages: 9

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87