Utilisation de VBA pour envoyer e-mail. Ouverture ootlook
Hello à tous.
J'ai de nouveau un petit souci.
Voilà : j'ai créé (enfin, plutôt récupéré et adapté) une macro pour générer un PDF et l'envoyer ensuite par mail (via outlook".
Tout va bien sauf que j'aimerais vraiment qu'Outlook ouvre la fenêtre d'envoi de mail. Ce qui me permettrait, entre autres choses : de personnaliser mon message, de rajouter une adresse mail, etc.
Or la macro fait partir le mail directement sans ouvrir Outlook.
Quelqu'un a-t-il une idée pour faire ce petit réglage ?
merci d'avance
Vinny
Public Sub testEnvoiMail()
Dim MonOutlook As Object
Dim MonMessage As Object
Dim email As string
Dim fichierjoint As string
' On crée une instance d'Outlook :
Set MonOutlook = CreateObject("Outlook.Application")
' Et on crée un élément Outlook, qui sera un message E-Mail :
Set MonMessage = MonOutlook.CreateItem(0)
MonMessage.To = email
MonMessage.Subject = "Devis N°" & fichierjoint
MonMessage.Body = "Bonjour. Veuillez trouver ci-joint le devis concernant : " & Range("d11") & "Cordialement."
MonMessage.Attachments.Add "C:\Documents and Settings\Mes documents\Société\devis\" & fichierjoint & ".pdf"
MonMessage.ReadReceiptRequested = True
Dim envoi As String
envoi = MsgBox("Envoyer le devis à l'adresse : " & Range("M5").Value, vbYesNo)
If envoi = vbYes Then
MonMessage.send
MsgBox "Devis généré ET envoyé à l'adresse : " & Range("M5").Value
Else: MsgBox "Devis généré mais pas envoyé"
End If
Set MonOutlook = Nothing ' On ferme !
End Sub
Bonjour
Essaye en modifiant :
If envoi = vbYes Then
MonMessage.send
par
If envoi = vbYes Then
Application.Dialogs(xlDialogSendMail).Show
Amicalement
Nad
Hello Nad
merci pour ta réponse.
Effectivement, ça ouvre bien une fenêtre Outlook comme je voulais.
Le petit souci maintenant c'est que je perds toutes les infos concernant l'adresse du destinataire, le sujet, le message et surtout le fichier joint.
Pour les 2 premiers, je m'en sors comme ceci :
Dim adressemail As String
Dim subject As String
Dim envoi As String
envoi = MsgBox("Envoyer le devis à l'adresse : " & Range("M5").Value, vbYesNo)
If envoi = vbYes Then
Application.Dialogs(xlDialogSendMail).Show adressemail, subject
MsgBox "Devis généré ET envoyé à l'adresse : " & Range("M5").Value
Else: MsgBox "Devis généré mais pas envoyé"
End IfEn ce qui concerne le corps du message, j'ai tenté de rajouter une variable ainsi que la ligne ci-dessous :
dim message as string
...
SendKeys messageMais ça me renvoie une chaîne de caractères sans queue ni tête en guise de corps du message.
Mais là où vraiment je suis perdu, c'est concernant le fichier attaché.
Comment créer l'argument qui va bien pour attacher un fichier ??
De plus, la macro me met par défaut le fichier Excel en P.j. (ce qui est très très vilain !)
Merci d'avance
Vinny
-- 08 Mar 2010, 16:34 --
-- 08 Mar 2010, 16:35 --
Stop stop on arrête tout !
En fait c'était d'une simplicité enfantine.
Il suffisait de remplacer
If envoi = vbYes Then
MonMessage.send
par
If envoi = vbYes Then
MonMessage.display
Aussi simple que cela.
Merci à Nad qui m'a mis sur la voie (après m'avoir fait gratter la tête
Vinny