Macro, UserForm et Outlook

Bonjour, j'ai crée un UserForm et j'ai un problème..

il est composé de 10 checkBox et de 10 label qui informe qui ont choisit, et d'un bouton.

Le but de cet UserForm est que quand on coche le CheckBox ça enregistre l'adresse mail de la personne concerné..on peut en cocher plusieurs, voir toutes. Lorsque l'on clique sur le bouton on ouvre Outlook et en destinataire on à la référence à TOUTES les personnes sélectionnées.Voici mon code:

Private Sub CheckBox1_Click()   'fait référence aux responsables A,B...J
Dim Adresse As String
Adresse = "jean.paul@xxxx.fr;"
....???..   'ne sait pas comment compléter
End Sub   'idem pour les 9 autres, je ne sais pas comment les sauvés

Private Sub CommandButton1_Click()
Dim objOutlook: Dim objNewMessage
On Error Resume Next
Set objOutlook = GetObject(, "Outlook.application")
     If objOutlook Is Nothing Then
        Set objOutlook = CreateObject("Outlook.application")
    End If
On Error GoTo 0
Set objNewMessage = objOutlook.CreateItem(OlMailItem) 
objNewMessage.Display
objNewMessage.Subject = "sujet"
objNewMessage.HTMLBody = "<BODY><B><SPAN STYLE='front-size:10mm'>Resultats: </SPAN></B></BODY>"
objNewMessage.To = "xxxxx.xxxx@xxxxxx.fr"   'mettre ici la totalité des adresses sélectionnés
objNewMessage.Save
objNewMessage.send
End Sub

Mon code pour le bouton fonctionne mais je ne sais pas comment sauver toutes les adresses mails et les mètrent ensuite dans destinataires.

Vous avez des idées ?

Merci

Bonsoir,

Il est préférable de boucler sur tes cases à cocher et de récupérer l'adresse de celles qui sont cochées. Avec l'exemple que je te donne, les adresses sont dans les Captions des case à cocher sans le point virgule (il est ajouté par la suite), si ce n'est pas le cas, dis moi où sont les adresses :

Private Sub CommandButton1_Click()

    Dim objOutlook
    Dim objNewMessage
    Dim Adresse As String
    Dim Ctrl As Control

    'boucle sur les contrôles à la recherche
    'de ceux qui sont cochés
    For Each Ctrl In Me.Controls

        If TypeName(Ctrl) = "CheckBox" Then

            If Ctrl.Value = True Then
                'ici, le texte des cases à cocher
                'contient l'adresse E mail (jean.paul@xxxx.fr)
                'sans le point virgule qui est rajouté après
               Adresse = Adresse & Ctrl.Caption & ";"

            End If

        End If

    Next

    'si aucun choix de fait il ne sert
    'à rien de lancer Outlook
    If Adresse <> "" Then

        On Error Resume Next
        Set objOutlook = GetObject(, "Outlook.application")

        If objOutlook Is Nothing Then
            Set objOutlook = CreateObject("Outlook.application")
        End If

        On Error GoTo 0

        Set objNewMessage = objOutlook.CreateItem(OlMailItem)

        With objNewMessage
            .Display
            .Subject = "sujet"
            .HTMLBody = "<BODY><B><SPAN STYLE='front-size:10mm'>Resultats: </SPAN></B></BODY>"
            .To = Adresse
            .Save
            .send
        End With

    End If

Set Ctrl = Nothing

End Sub

Hervé.

Bonjour,

Merci Theze j'ai testé ton code et les adresses étaient bien dans Caption. J'ai rajouté un bouton "sélectionner tout" en supprimant la fonction If imbriquée dans l'autre..ça marche !!!

Je voudrais rajouter: si on choisit de prévenir "PARTIE A" (réf a CheckBox1 et ainsi de suite...), en plus d'ajouter son adresse mail dans "à..." (destinataire) quand on le coche; que cela rajoute automatiquement l'adresse mail de "CHEF PARTIE A" dans "Cc..." (copie cachée). Est ce possible ?

PB: il est également chef de A, B et C, donc si je coche ces 3 il ne dois apparaitre qu'une seule fois!!

Il faudrait rajouté l'adresse mail du chef par exemple dans le ControlSource de la case à cochée et que le programme ne le mettent qu'une seule fois. (Et de même pour les autres chefs..)

Merci.

Rechercher des sujets similaires à "macro userform outlook"