[Excel | VBA] Envoie de Mail à plusieurs destinataires via Outlook [Résolu]

AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention - 16 juil. 2008 à 14:01 - Dernière réponse : AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention
- 16 juil. 2008 à 16:05
Bonjour à tous,

Mon code actuel me permet d'envoyer un mail, ainsi qu'une pièce jointe à un destinataire.
Ce que je souhaite à ajouter et d'envoyer le même mail à un ou plusieurs destinataire en fonction de plusieurs checkbox ( une par destinataire ). Si la Checkbox est cochée, alors l'adresse liée fait partie des destinataire.

Mon code actuel :

Sub Envoyer()

   Dim ol As New Outlook.Application
   Dim olmail As MailItem
   Dim CurrFile As String
   Dim No As String
  
   No = Workbooks("GestionFIQ.xls").Sheets("FIQ").Range("Y2").Value


   Set ol = New Outlook.Application
   Set olmail = ol.CreateItem(olMailItem)
   With olmail
      .To = Sheets("Présentation").Range("E247").Value
      .To = Sheets("Présentation").Range("E248").Value
      .Subject = "FIQ N° " & No & ""
      .Body = Sheets("Présentation").Range("D247").Value
      .Attachments.Add "C:\Documents and Settings\fx.marette\Mes documents\TestSVG\FIQ N° " & No & ".xls"
      .Send

   End With
End Sub

En gros , pour l'exemple, je vais expliquer avec 3 destinataires.
Dans la cellule A1, l'adresse mail du premier destinataire,
A2, l'adresse mail du deuxième destinataire,
A3, l'adresse mail du troisième destinataire.

A coté 3 checkox ( checkbox1, checkbox2, et checkbox3) chacune liée aux différents destinataires.

Je souhaite faire en sorte que si la checkbox1, et la checkbox2 sont cochées alors lorsque l'on envoie le mail, ca ne l'envoie qu'au 2 premiers destinataires.

Ainsi si la checkbox1, et la checkbox3 sont cochées, cela ne l'envoie qu'au 1er et au 3ème destinataire.

Est ce possible ?
Quelqu'un peut il m'aider s'il vous plait ?

Merci d'avance,

AiDuK
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 16 juil. 2008 à 15:44
3
Merci
Quand tu envois par Outlook un mail, les destinataires sont séparés par des ";", il te faut donc faire la même chose.

Tu remplaces dans ton code la ligne
.To = Sheets("Présentation").Range("E247").Value
qui te sert à rentrer UN destinataire par
.To = ListeDestinataires
où ListeDestinataires est une variable de type String.

Et avant d'exécuter ton code d'envoi du mail, tu alimentes ta variable en vérifiant toutes tes CheckBox
Pour ton exemple, ça donnerait un truc du genre :
ListeDestinataires = ""
if Checkbox1.value = true then
   ListeDestinataires = ListeDestinataires & ";" & range("A1").Value
end if
if Checkbox2.value = true then
   ListeDestinataires = ListeDestinataires & ";" & range("A2").Value
end if
if Checkbox3.value = true then
   ListeDestinataires = ListeDestinataires & ";" & range("A3").Value
end if

Et pour finir, enlever le 1er caractère qui sera un ";" :
ListeDestinataires = right(ListeDestinataires, len(ListeDestinataires)-1)

C'est pour le principe de fonctionnement, après, en fonction de ton nb de CheckBox et de tes besoins, peut être créer une fonction au lieu d'une succession de if, etc ...
Mais avec ça, tu devrais pouvoir t'en sortir ^^

Molenn

Merci Molenn 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Molenn
AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention - 16 juil. 2008 à 16:05
0
Merci
Parfait , merci beaucoup pour tout
Commenter la réponse de AiDuK

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.