Envoi mail a plusieurs personnes

Je veux envoyer un mail a plusieurs personnes après avoir choisi les personnes a partir d'une listbox, la listbox est rempli a partir d'une feuille "service" colonne A (noms des personnes), les adresse mail associées se trouvent en colonne E.

L'operation est la suivante, on crée un fichier pdf, on le sauvegarde apres on envoit un mail:

CODE 1 creattion du pdf, sauvegarde et on envoi mail

Private Sub Valider_Click()

'Sauvegarder les donnees

SauvegardeFA

'creation pdf

PDFCreator Me

'envoie du mail

subject = "Nouvelle fiche anomalie : FA " & NumFA.Value & " cr?er par " & Nom1.Value

body = "Une Nouvelle fiche anomalie vient d'?tre cr?er : " & Description1.Value

sendMail CStr(subject), CStr(body)

'reinitialiser le formulaire

''vider le formulaire

For Each ctrl In Me.Controls

If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then

ctrl.Value = ""

End If

Next

End Sub

Avec SendMail c'est un module:

CODE 2

Public Sub sendMail(subject As String, body As String)

'ouverture outlook

Set oOutlook = CreateObject("Outlook.Application")

SelectionDestinataire.Show 'userform pour choisir les destinataires

If SelectDestChoice = "Annuler" Then

Exit Sub

Else

mailDest = ThisWorkbook.Worksheets("service").Range("E" & CInt(SelectDestChoice) + 2).Value

End If

'Personnes qui reçoivent les mails automatiquement

mailA = "aaa@gmail.com"

mailB = "bbb@gmail.com.com"

Set oMailItem = oOutlook.CreateItem(olMailItem) 'cree un objet mail

oMailItem.To = mailDest & ";" & mailB & ";" & mailA 'EmailDestinataire

oMailItem.subject = "[Mail automatique]" & subject 'SujetMail

oMailItem.attachments.Add PDFPath & "\" & PDFName

oMailItem.body = body 'CorpsMail

oMailItem.Send 'Envoi du mail

End Sub

CODE3

Dans le userform SelectionDestinataire, on chosit les personnes et puis on valide:

Private Sub Valider_Click() 'choisir les personnes

For i = 0 To Me.ListBox1.ListCount - 1

If Me.ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.list(i) & " "

Next i

' MsgBox temp

SelectDestChoice = me.ListBox1.ListIndex

Unload Me

End Sub

Edit modo : merci de mettre les codes entre balise grace au bouton </>

Pour les 2 personnes ou le mail s'envoi automatiquement ca passe sans aucun probleme, mais pour ceux que je choisi a partir de la listbox il me choisi une seule personne et c tjr la mm personne

Bonjour,

Tu serais aimable de placer ton code sous balise ... c'est le bouton "Code" >>> </> ...

Merci

ric

Bonjour,

If Me.ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.list(i) & " "

Dans liste d'adresses, chacune doit être séparée par un point-vigule ...

Sans fichier pour tester ... je suggère donc ...

If Me.ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.list(i) & ";"   

ric

Non, c'est toujour le mm probleme :/ choix de personne aleatoire est tjr le meme

Bonjour,

Au début d'un Module (disons Module1) ... ajoute > Public ListeChoix As String

Dans le Userform SelectionDestinataire >

'''Dans le userform SelectionDestinataire, on chosit les personnes et puis on valide:

Private Sub Valider_Click() 'choisir les personnes

For i = 0 To Me.Listbox1.ListCount - 1
    If Me.Listbox1.Selected(i) = True Then ListeChoix = ListeChoix & Me.Listbox1.List(i) & ";"
Next i

SelectDestChoice = Me.Listbox1.ListIndex

Unload Me

End Sub

Ensuite dans la macro > Public Sub sendMail(subject As String, body As String) >

Modifie ainsi cette ligne ...

oMailItem.To = mailDest & ";" & mailB & ";" & mailA & ";" & ListeChoix ' << EmailDestinataire

ric

Bonjour,

j'ai une erreur dans cette ligne: oMailItem.Send 'Envoi du mail dans le code Public Sub sendMail(subject As String, body As String), il me dit impossible de reconnaitre un ou plusieurs personnes

Bonjour,

Peut-être ainsi ...

Public Sub sendMail(subject As String, body As String)

    'ouverture outlook
    Set oOutlook = CreateObject("Outlook.Application")

    SelectionDestinataire.Show    'userform pour choisir les destinataires

    If SelectDestChoice = "Annuler" Then Exit Sub

    'Personnes qui reçoivent les mails automatiquement
    mailA = "aaa@gmail.com"
    mailB = "bbb@gmail.com.com"

    Set oMail = oOutlook.CreateItem(olMailItem)    'cree un objet mail
    oMail.To = mailDest & ";" & mailB & ";" & mailA & ";" & ListeChoix
    oMail.subject = "[Mail automatique]" & subject    'SujetMail
    oMail.attachments.Add PDFPath & "\" & PDFName
    oMail.body = body    'CorpsMail
    oMail.Send    'Envoi du mail
End Sub

ric

Rechercher des sujets similaires à "envoi mail personnes"