Envoi automatique d'un mail selon selection dans un combobox

Fermé
misschoupi - 29 avril 2013 à 17:10
 misschoupi - 30 avril 2013 à 11:21
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
A voir également:

6 réponses

Mike-31 Messages postés 18381 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 mars 2025 5 126
Modifié par Mike-31 le 29/04/2013 à 21:57
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
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
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
Mike-31 Messages postés 18381 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 mars 2025 5 126
30 avril 2013 à 10:25
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
Merci Mike. Ma DSI m'a donné le nom du serveur. Bonnes vacances
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18381 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 mars 2025 5 126
30 avril 2013 à 10:44
As tu testé le code, qui n'utilise pas Outlook mais passe directement par le courrier sortant
0
Mike-31 Messages postés 18381 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 mars 2025 5 126
30 avril 2013 à 11:13
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
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