Envoi automatique d'un mail selon selection dans un combobox

misschoupi -  
 misschoupi -
Bonjour,

Débutante en VBA, je fais appel à votre expertise. J'ai crée un userform, dans lequel j'ai mis un combobox. Selon, ce qui est sélectionné dans le combobox, j'ai ajouté un bouton qui devrait envoyer un mail à telle ou telle personne. Malheureusement, j'ai tenté pas mal de choses mais toujours sans succès. Pouvez-vous m'aiguiller s'il vous plait. D'avance merci

6 réponses

  1. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut

    dans les propriétés de ton bouton activex colle ce code ou j'ai ajouté quelques artifices pour me faire plaisir

    recherche dans le code cette ligne
    et remplace smtp par le smtp de ton fournisseur d'accès entre guillemet
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr"
    en supposant que le bouton de commande est bien le CommandButton1
    et que le combobox est également le ComboBox1 sinon rechercher dans le code et adapter

    Private Sub CommandButton1_Click()
    Dim messageHTML As Variant
    Dim objMessage As Variant
    Dim piece_jointe As Variant
    '----------------------------------------crée le fichier à envoyer
    On Error GoTo errorHandler
    CommandButton1.Caption = "veuillez patienter"
    CommandButton1.ForeColor = &HFF&
    CommandButton1.Font.Bold = True
    Set objMessage = CreateObject("CDO.Message")
    objMessage.Subject = "Note d'information"
    objMessage.From = "wwwwwww@free.fr" 'adresse mail de l'expéditeur n'est pas obligatoire"
    objMessage.To = ComboBox1 'Email du destinataire doit-être correct ici
    'objMessage.Cc = [B3].Value 'Email du destinataire en copie
    'ou pour un envoi en anonyme
    'objMessage.BCC = [B3].Value 'Cci ou Bci devient BCC en Englais
    '----------------------------------------Création le corps du message avec insertion de sauts de ligne
    objMessage.TextBody = "Bonjour" & " " & [C2].Value & "," & vbCrLf & vbCrLf _
    & "Veuillez trouvez ci-joint le " & [C3].Value & "." & vbCrLf & vbCrLf _
    & "etc ..." & vbCrLf _
    & "etc ..." & vbCrLf _
    & "etc ..." & vbCrLf _
    & "etc ..." & vbCrLf _
    & "etc ..." & vbCrLf _
    & "etc ..." & vbCrLf _
    & "etc ..." & vbCrLf & vbCrLf _
    & "Cordialement "
    objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr" 'remplacer ici le smtp par celui de son fournisseur d'accés
    objMessage.Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objMessage.Configuration.Fields.Update
    objMessage.Send
    MsgBox "Le mail a été bien envoyé !" 'Confirmation de l'envoi
    CommandButton1.Caption = "Envoyer un message"
    CommandButton1.ForeColor = &H80000012
    CommandButton1.Font.Bold = False
    '---------------------------------------Si erreur on sort de la procédure
    Exit Sub
    errorHandler:
    '---------------------------------------Description de l'erreur survenue
    MsgBox Err.Description
    End Sub

    Je serais absent de demain après midi jusqu'à jeudi soir

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  2. misschoupi
     
    Bonjour Mike et merci pour ta réactivité, mais je suis un peu perdue. Tu me demande de remplacer le smtp par celui de mon fournisseur d'accès mais je ne connais pas le fournisseur d'accès de mon entreprise. La seule chose que je sache c'est que je souhaite envoyer mes mails via outlook. Peux-tu m'éclaircir si l'énoncé de mon problème est assez clair.
    D'avance merci
    0
  3. misschoupi
     
    J'apporte une autre précision, un exemple. Si dans la combobox, je clique sur lapin, en cliquant sur sur le bouton "envoyer", j'enverrai un mail à Monsieur X, si dans la combobox, je clique sur renard, en cliquant sur le bouton "envoyer", j'enverrai un mail à Monsieur Y.
    0
  4. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    je part pour quelques jours dans quelques heures, pour te répondre rapidement, ton entreprise est bien connectée à internet avec un fournisseur d'accès qui est il orange, free etc ...
    0
    1. misschoupi
       
      Merci Mike. Ma DSI m'a donné le nom du serveur. Bonnes vacances
      0
    2. misschoupi
       
      Oui j'ai testé, c'est presque top. Le seul hic, c'est que dans ma combobox j'ai pas les adresse mail. Il faut que je les prenne ailleurs. Voilou! en tout cas grd merci deja
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    As tu testé le code, qui n'utilise pas Outlook mais passe directement par le courrier sortant
    0
  7. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    pour afficher la liste de tes adresses mail dans le combobox, il suffit d'activer depuis le Visual Basic l'userform puis un simple clic sur le combobox et rechercher dans les propriétés RowSource et saisir la plage ou se trouve tes adresses
    exemple A1:A20
    0
    1. misschoupi
       
      Mike, Je ne veux pas afficher l'adresse mail en clair dans la combobox mais une ligne de produit et un mail est rattaché à une une ligne de produit. Merci pour ton aide ultra précieuse!!!
      0