Envoi E-mail Plusieurs destinataires (excel+vba) [Résolu]

Messages postés
50
Date d'inscription
vendredi 15 août 2008
Dernière intervention
29 novembre 2010
- - Dernière réponse : grosquick59
Messages postés
50
Date d'inscription
vendredi 15 août 2008
Dernière intervention
29 novembre 2010
- 25 nov. 2010 à 23:07
Salut

je souhaite envoyer un mail type à plusieurs destinataires via Excel.
Les destinataires se trouvent dans une colonne E.
Dans la colonne F j'indique oui ou non. (oui = envoi mail)
Le problème est que j'ai un mail par destinataire ce qui est impossible à gérer. Je souhaiterai que toutes les adresses mail de la colonne E soient en destinataire dans un seul e-mail.

Voici mon code :



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("E").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@?*.?*" And _
LCase(Cells(cell.Row, "F").Value) = "oui" Then

Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = "Infos"
.Body = "Bonjour, xxxxxxxxxxxxxx"
.Display

End With
On Error GoTo 0
Set OutMail = Nothing
End If
Next cell

cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub

J'espère que je suis assez clair ^^
Par avance, merci.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
3
Merci
Bonjour,
pour suivre l'idée de c148270 :
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range, x As Integer
Dim mesdestinataires As String

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

On Error GoTo cleanup


For Each cell In Columns("E").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@?*.?*" And _
LCase(Cells(cell.Row, "F").Value) "oui" Then mesdestinataires cell.Value & "; " & mesdestinataires
Next cell

x = Len(mesdestinataires) - 2
nbritem = Left(mesdestinataires, x)

Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = mesdestinataires
.Subject = "Infos"
.Body = "Bonjour, xxxxxxxxxxxxxx"
.Display
End With

On Error GoTo 0
Set OutMail = Nothing


cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True

Tien nous au courant, merci

@+

Merci rv83toulon 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de rv83toulon
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
3 octobre 2013
0
Merci
Bonjour

Idée
Concatener les valeurs trouvées dans une variable en les séparant par un point-virgule puis construire le message avec .to= la variable

Bonne journée
Commenter la réponse de c148270
Messages postés
50
Date d'inscription
vendredi 15 août 2008
Dernière intervention
29 novembre 2010
0
Merci
Merci. ça marche impec.
Commenter la réponse de grosquick59

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.