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

grosquick59 50 Messages postés vendredi 15 août 2008Date d'inscription 29 novembre 2010 Dernière intervention - 25 nov. 2010 à 00:33 - Dernière réponse : grosquick59 50 Messages postés vendredi 15 août 2008Date d'inscription 29 novembre 2010 Dernière intervention
- 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
rv83toulon 68 Messages postés mercredi 2 mars 2011Date d'inscription 25 avril 2013 Dernière intervention - 25 nov. 2010 à 10:03
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de rv83toulon
c148270 303 Messages postés mercredi 12 janvier 2005Date d'inscription 3 octobre 2013 Dernière intervention - 25 nov. 2010 à 02:09
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
grosquick59 50 Messages postés vendredi 15 août 2008Date d'inscription 29 novembre 2010 Dernière intervention - 25 nov. 2010 à 23:07
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.