XL 2013 Envoi mail avec choix

Moreno076

XLDnaute Impliqué
Bonjour à tous.

Dans le fichier ci-joint j'aurais besoin que chaque bouton de la colonne B permettent de mettre tous les destinataires dans un mail (messagerie par défaut) microsoft outlook. La liste des e-mails est susceptible d'évoluer donc il faut vraiment que le bouton puisse reprendre les données de la colonne C. Le pied serait qu'en cliquant sur ce bouton, il propose de mettre tous les email ou de choisir un par un (système de cocher?)

Ensuite pour le gros bouton en bas, j'aurais besoin qu'il mettre en destinataire CCi tous les emails de tous les groupes A B C D... Sachant que la colonne A est susceptible d'être rallongée dans le temps. Le pied serait également de pouvoir choisir tous les groupes A B C... ou de pouvoir choisir un par un. (système de cocher?)

Merci pour votre aide. :)
 

Pièces jointes

  • Coordonnéestest.xlsm
    24.1 KB · Affichages: 25

Lone-wolf

XLDnaute Barbatruc
Bonjour Moreno

Un Exemple à adapter à ton cas

VB:
Private Sub CheckBox1_Click()
Dim i As Integer
ListBox1.MultiSelect = fmMultiSelectExtended
On Error Resume Next
For i = 0 To Me![ListBox1].ListCount + 1
Me![ListBox1].Selected(i) = True
Next
End Sub

Private Sub Envois_Click()
Dim i As Byte
Dim olApp, objMail
Dim olmail As MailItem
Dim Chaine As String, OpenFolder

    ChDrive "D"
    ChDir ThisWorkbook.Path & "\"
    OpenFolder = Application.GetOpenFilename("(*.*),*.*")

    For i = 0 To ListBox1.ListCount - 1
      If ListBox1.Selected(i) Then
            Chaine = Chaine & " " & ListBox1.List(i) & ";"
        End If
      Next i

    Set olApp = CreateObject("Outlook.Application")
    Set objMail = olApp.CreateItem(olMailItem)

    With objMail
    .To = Nouveau.Email.Value
    .CC = Trim(Chaine)
    .Subject = ""
    .Body = ""
    If OpenFolder <> False Then .Attachments.Add OpenFolder
    .Display
    End With
End Sub

Un autre exemple mais avec choix par liste en PJ. Double-clique sur la feuille pour envoyer.
 

Pièces jointes

  • Outlook.xlsm
    22.7 KB · Affichages: 34
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonsoir Moreno :), le Forum :)

Si tu envois avec outlook, pas besoin d'avoir les liens (ou l'écriture en bleu). En plus, quand tu écrit comme ceci

VB:
Sub EnvoiMail()

    With Worksheets("Feuil1")
        If .Range("B3") < .Range("G6") Then
            Set olApp = CreateObject("outlook.application")
            Set olMail = olApp.CreateItem(olMailItem)
            With olMail
                .To = "xxx@yy.com"
               .CC = "zzz@yy.com"
                .Subject = "sujet"
                .Body = " message"
                .send
            End With
        End If
    End With
End Sub

Avec en plus des emails déjà écrits dans la macro, normal que tu n'aie qu'un seul lien. Fait déjà deux colonnes; une pour les premières adresses, l'autre pour les CC. Ensuite il faut faire aussi des boucles For Next. Vas dans les réfénces et coche Microsoft Outlook xx Object Library.
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
227
Réponses
8
Affichages
149
Réponses
5
Affichages
361

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16