Rajouter le nom et prénom dans mon HTMLbody

Salut a tous !!

J'ai fait un code vba pour envoyer un courriel, tout fonctionne bien mais j'aimerais rajouter dans ma salutation le nom et prénom. En sachant bien que le nom et prénom va changer sur chaque ligne et que mon nom et prénom va se trouver dans ma colonne A à partir de la ligne deux. Auriez-vous une idée ? Je pensais rajouter ceci mais sa ne fonctionne pas: (Cells(cell.Row, "A").Value)

Voici ma ligne en HTML

.HTMLBody = "<html> " & " <p>Bonjour, </p> " _

Merci d'avance !!

Bonjour Jsod,

Vous êtes sérieux là

Merci de joindre un fichier anonymisé ou à minima tout le code utilisé mis entre balises grâce au bouton

image

Bonjour,

Il faut à minima refermer toutes les balises.

Sub SendEmail(ByVal FirstName As String, ByVal lastName As String, ByVal Display As Boolean)
    Dim OutlookApp As Object
    Set OutlookApp = CreateObject("Outlook.Application")

    Dim OutlookMail As Object
    Set OutlookMail = OutlookApp.CreateItem(0)

    Dim Body As String
    Body = "<!DOCTYPE html>" & _
               "<html><head>" & _
               "<meta http-equiv=""Content-Type"" content=""text/html; charset=ISO-8859-8"">" & _
               "</head>" & _
               "<body>" & _
               "<p style=""font-family:Arial; font-size:14px;"">" & _
               "Bonjour," & FirstName & " " & lastName & "<br>>br>" & _
               "La suite d texte ici </p>" & _
               "</body>" & _
               "</html>"

    With OutlookMail
        .to = "destinataire@example.com"
        .Subject = "Sujet du courriel"
        .HTMLBody = Body
        If Display Then
            .Display
        Else
            .Send
        End If
    End With

    If Not OutlookMail Is Nothing Then Set OutlookMail = Nothing
    If Not OutlookApp Is Nothing Then Set OutlookApp = Nothing
End Sub

Un peu de lecture sur : les balises ici

Bonjour,

Voici mon code, le nom de la personne a qui envoyer le courriel se trouve dans un autre onglet dans la colonne A, donc le nom change pour chaque destinataire

Sub Valider_Courriel()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    On Error GoTo cleanup
    For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" And _
           LCase(Cells(cell.Row, "C").Value) = "a envoyer" Then

            Set OutMail = OutApp.CreateItem(0)
            On Error Resume Next
            With OutMail
                .SentOnBehalfOfName = "@.com"
                .To = cell.Value
                .Attachments.Add ZooLogo, 1, 0
                .Subject = "No"
                .HTMLBody = "<html> " & " <p>Bonjour, </p> " _
Sub Valider_EC()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    On Error GoTo cleanup
    For Each cell In Columns("N").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" And _
           LCase(Cells(cell.Row, "O").Value) = "etat / confirmation" Then

            Set OutMail = OutApp.CreateItem(0)
            On Error Resume Next
            With OutMail
                .SentOnBehalfOfName = "@.com"
                .To = cell.Value
                .Attachments.Add IntactLogo, 1, 0
                .Subject = (Cells(cell.Row, "A").Value) & " -Test"
                .HTMLBody = "<html> " & " <p>Bonjour, </p> " _

Pourtant quand je le mets dans l'objet, sa fonctionne mais je suis incapable de le mettre dans mon HTMLBody.. quelqu'un aurait une idée ? MErci

Bonjour Jsod,

Comment voulez-vous qu'on vous aide, vous donner des brides de code

Le mieux est de déposer un fichier anonymisé
Anonymisation de données pour Excel

A+

Bonsoir,

Quelques petites réflexions.

Tout d'abords

Comment voulez-vous qu'on vous aide, vous donner des brides de code

Je suis entièrement d'accord...

Ensuite :

For Each cell In Columns("N").Cells.SpecialCells(xlCellTypeConstants)

Ici il faut être plus explicite Columns se réfère à la feuille active ce qui peut entrainer des résultats inattendus.
De plus vous recherchez un adresse de courriel, alors pourquoi sélectionner des cellules spéciales ?
Donc un simple :

For Each Cell In Feuil1.Columns("N")

ou si vous utilisez un tableau structuré :

For Each Cell In Feuil1.Range("Tableau1").ListObject.ListColumns("Mail").DataBodyrange

Maintenant,

Sur cette ligne :

If cell.Value Like "?*@?*.?*" And
  • L'utilisation des point d'interrogation et des astérisques est redondante, les astérisques sont suffisantes.
  • L'opérateur like par défaut effectue une comparaison Binaire, ce qui peut engendrer des résultats innattendus.

Préférez lui une fonction :

'@Description "Valide une adresse de courriel."
Function IsValidEmail(Email As String) As Boolean
    Const MAIL_PATTERN As String = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$" ' // Valide une adresse de courriel
    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")

    With RegEx
        .PATTERN = MAIL_PATTERN
        .IgnoreCase = True
        .Global = False
    End With

    IsValidEmail = RegEx.test(Email)
    If Not RegEx Is Nothing Then Set RegExp = Nothing
End Function

Et pour l'appel

For Each Cell In Feuil1.Columns("N")
        Dim MailTo As String
        MailTo = Cell.Value

        Dim Confirmed As Boolean
        Confirmed = (Cell.Offset(0, 1).Value = LCase("etat / confirmation"))

            If IsValidEmail(MailTo) And Confirmed Then
                '...
                '...

Maintenant on attends de voir la suite.

Bon après avoir eu des votes négatifs hehe je vous joins le fichier. J'ai essayé ce que tu m'as dit de modifié Jean-Paul mais j'ai un erreur de End sub au début...

Bonsoir,

Bon après avoir eu des votes négatifs hehe je vous joins le fichier. J'ai essayé ce que tu m'as dit de modifié Jean-Paul mais j'ai un erreur de End sub au début...

Bé oui nous faisons comme vous, nous donnons qu'une partie du code.

Perso,

Vu la bonne volonté du demandeur qui semble avoir été forcé de mettre un fichier... je n'irais pas plus loin !

Cetais de l’humour mais bon je respecte votre choix de ne plus m’aider

Re,

Bon un coup d’œil jeté vite fait sur le fichier...

  • Il faut à tout prix commencer par le commencement c'est à dire les bases du VBA que vous trouverez sur ce site.
  • Vous avez imbriqué des fonctions avec des procédures, ce n'est pas bon du tout.
  • Et j'en passe...

Voici une approche minimaliste, de ce qui pourrait être fait.

  • Dans le tableau des paramètres feuille paramètres il faut renseigner :
    • L'adresse de l'expéditeur (Ligne : Sender, colonne Values : toto@hotmol.fr)
    • Si vous voulez ouvrir ou pas le courriel (Ligne DisplayMail, colonne Values : VRAI OU FAUX)

Les adresses des destinataires sont fausses, il vaut donc mieux paramétrer l'ouverture du courriel.

La feuille Logs contient un tableau d'évènements. Certains problèmes y seront inscrit.

Je vous conseille de mettre un point d'arrêt sur la ligne Set OutApp = CreateObject("Outlook.Application") puis de faire du pas à pas pour voir l'évolution du code.

je vous remercie pour tout, je vais revalider le tout

Rechercher des sujets similaires à "rajouter nom prenom mon htmlbody"