Ajout texte conditionnel - Mail

EViLapin -  
 EViLapin -
Bonjour,

Voici mon code :

Option Explicit

Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim strMsg As String
______________
Sub envoi_mail()

Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)

strMsg = "Bonjour" _
& "Suite à la vérification des conditions de participation, les personnes suivantes peuvent participer :"

With oBjMail
.To = ""
.Subject = ""
.HTMLBody = strMsg
.Attachments.Add "C:\Chemindufichierconcerné..."
.Display

End With

Set oBjMail = Nothing
Set ObjOutlook = Nothing

End Sub


Ce mail va contenir des informations reprises du tableau Excel.

Mon tableau Excel comprend plusieurs colonnes, notamment :
A = Nom_Prénom
B = Condition1 Oui/Non
C = Condition2 Oui/Non
D = Est dans les conditions pour participer Oui/Non

Je souhaiterais que mon mail contienne :
"Bonjour" _
& "Suite à la vérification des conditions de participation, les personnes suivantes peuvent participer :"

+ Les noms et prénom (A1, A2, A3, ...) des personnes pour lesquelles D = "Oui" (D1 pour A1, D2 pour A2, D3 pour A3, ...).

Est-ce possible ?
Si oui, comment faire ?

D'avance, un tout tout grand merci pour votre précieuse aide.

EViLapin

2 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Option Explicit
    
    Dim ObjOutlook As New Outlook.Application
    Dim oBjMail
    Dim strMsg As String
    '______________
    Sub envoi_mail()
    
    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
    
    strMsg = "Bonjour" & vbNewLine _
                    & "A la suite de la vérification des conditions de participation, les personnes suivantes peuvent participer :" & newline _
    '------------------Ajout des personnes ok pour participation----------------
        With Worksheets("feuil1")       'nom de feuille a adapter
            Set Plage = .Range("A1:D" & .Range("A" & .Rows.Count).End(xlUp).Row)
        End With
        NBL = Plage.Rows.Count
        NP = 0
        For n = 1 To NBL
            If UCase(Plage(n, 4)) = "OUI" Then
                strMsg = strMsg & vbNewLine & vbTab & "- " & Plage(n, 1)
            End If
        Next n
    '--------------------------------------------------
    With oBjMail
        .To = ""
        .Subject = ""
        .HTMLBody = strMsg
        .Attachments.Add "C:\Chemindufichierconcerné..."
        .Display  'ouvre Outlook et confirmer envoi ou pas
        '.Send      'envoi direct
    End With
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
    
    End Sub
    
    0
    1. EViLapin
       
      Bonjour,

      Merci pour votre réponse.

      Malheureusement, ça ne fonctionne pas.
      Les variables sont non définies, me dit-il...
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      Eh ben definissez les!!!!!!!!!!!!!!!!!!!!!!!
      0
    3. EViLapin
       
      Même définies, ça ne fonctionne pas.
      0
  2. EViLapin
     
    J'ai trouvé la solution, pour ceux que ça pourrait intéresser dans le futur :

    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        If Range("D" & i) = "Oui" Then
            strMsg = strMsg & "- " & Range("A" & i).Value & "<br>"
        End If
    Next


    Merci
    0