VBA - envoie de mail via forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion LB005
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

LB005

XLDnaute Nouveau
Bonjour forumeurs, forumeuses,

Je souhaitais compiler une macro permettant d'envoyer un mail a une liste de noms, si et seulement si un "YES" (conditional formatting) apparait sur la colonne de gauche de l'adresse mail.

Voici le code:


Sub SetRecipients()
Dim aOutlook As Object
Dim aEmail As Object
Dim myCell As Range
Dim myRange As Range
Dim strRecipients As String

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)
Set myRange = Worksheets("contacts").Range("A1:B100")

For Each myCell In myRange

If myCell.Offset(0, 1).Value = "YES" Then
strRecipients = strRecipients & ";" & myRange.Offset(0, 2).Value


Else
End If
Next

aEmail.Subject = "test"
aEmail.Body = "Vive www.excel-downloads.com!"
aEmail.to = strRecipients

aEmail.Send
End Sub​


Le strRecipients (qui represente les mail adresses repondant a l'itération) s'avere etre vide lorsque je tente d'y inserer le "YES" condition.

En gros, il faudrait:

IF colonne A = YES,
THEN envoyer un mail a l'adresse indiquée a la droite du YES (colonne B)


Je pense que le probleme provient des lignes de codes indiquées en rouge et pense ne pas etre loin du resultat...

Merci de vos suggestions,
et n'hesitez pas a vous servir de ces quelques lignes si vous voulez lié Outlook a un Excel.

Bien a vous,
L0L0
 
Dernière édition:
Re : VBA - envoie de mail via forme conditionnelle

Bonjour et bienvenue 🙂
Avec un fichier c'est mieux... 😱
Logiquement :
Code:
Sub SetRecipients()
Dim aOutlook As Object, aEmail As Object
Dim myCell As Range, myRange As Range
Dim strRecipients As String

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)
Set myRange = Worksheets("contacts").Range("A1:A100")

For Each myCell In myRange
If myCell.Value = "YES" Then
    strRecipients = strRecipients & ";" & myRange.Offset(0, 1).Value
End If
Next

With aEmail
    .Subject = "test"
    .Body = "Vive www.excel-downloads.com!"
    .to = strRecipients
    .Send
End With
End Sub
 
Re : VBA - envoie de mail via forme conditionnelle

Bonjour Barba, et merci pour ta quick reply!

strRecipients = strRecipients & ";" & myRange.Offset(0, 1).Value

Type mismatch s'affiche 🙁

YES = colonne A
mail related = colonne B

c'est pourtant une itération simple mais elle ne veut pas fonctionner!
VBA... quand tu nous tiens...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
900
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
893
Réponses
4
Affichages
656
Réponses
6
Affichages
781
Retour