Macro outlook sans référence fonctionne pas
Bonjour,
J'ai mis au point une macro pour envoyer un fichier PDF mensuel. Cependant, puisque que les utilisateurs ont des versions différentes les références ne sont pas les mêmes et cela entraîne plein de b*** à chi**te de m**d* de problème
Je souhaite :
- prendre le fichier pdf s'il existe sinon le créer et le prendre;
- rédiger le mail sans l'envoyer et l'afficher à l'écran avant envoie pour personnalisation.
Le problème c'est que quand je lance la macro il ne se passe rien :/. Merci à vous pour votre aide ci-après le code :
Sub envoile()
Dim strTo As String, strCC As String, strNomFichier As String, strSujet As String, strTexte As String
Dim MonOutlook As Object
Dim MonMessage As Object
Dim ligneedit As String
Dim mois As String
mois = Range("C3").Value
Dim ann As String
ann = Range("B3").Value
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(0)
ligneedit = "Z:\BIP \" & ann & "\BIP " & mois & " " & ann & "\Ligne éditoriale BIP " & mois & " " & ann & ".pdf"
If Dir(ligneedit) = "" Then
Call Enregistrer_PDF
End If
On Error GoTo fin
strTo = "lemachin@xxx.com"
strCC = "letruc@ssss.com
strSujet = "Ligne éditoriale " & mois & " " & ann
strTexte = "Bonjour," & Chr(10) & "Je vous propose la ligne éditoriale, ci jointe, au titre du BIP de " & mois & " " & ann & "." & Chr(10) & "Restant à votre écoute pour tout ajustement éventuel." & Chr(10) & "Merci par avance," & Chr(10) & "Cordialement,"
MonMessage.To = strTo
MonMessage.CC = strCC
MonMessage.Attachments.Add ligneedit
MonMessage.Subject = strSujet
MonMessage.Body = strTexte
Set MonOutlook = Nothing
Exit Sub
fin:
MsgBox Err.Description
Set MonOutlook = Nothing
Set MonMessage = Nothing
End Sub- Messages
- 308
- Excel
- 2016
- Inscrit
- 15/06/2017
- Emploi
- Bénéficiaire de la sécurité de la vieillesse
Bonjour,
Dans ton code, je ne vois pas l'envoi : MonMessage.Send après MonMessage.Body
Joseph
Bonjour retraite8,
C'est tout à fait normal car je n'ai pas envie qu'il s'envoie ! je voudrais que la fenêtre de rédaction du message s'ouvre avec toutes les informations renseignées par la macro (destinataire, copie, pj, sujet et le corps de texte). Le but est de pouvoir, pour l'utilisateur, ajouté quelque chose au mail s'il le souhaite et vérifier qu'il s'agit bien du bon fichier.
Cdlt,
EDIT :
J'ai trouvé une solution :
'https://www.excel-downloads.com/threads/vba-envoyer-un-mail-avec-outlook-sans-object-library.20003584/
Sub SendOLMail_LateBound()
Dim oAPP As Object
Dim oItem As Object
' need to declare this constant as it has no meaning without
' the reference set to the Outlook library
Const olMailItem As Long = 0
' instantiate the Application - cannot use New without a reference
' so we must use CreateObject
Set oAPP = CreateObject("Outlook.Application")
' #######################################
' NOTE: THE REST OF THE CODE IS IDENTICAL
' #######################################
' create a new email
Set oItem = oAPP.CreateItem(olMailItem)
' set basic properties and display the email
With oItem
.To = "foo@bar.com"
.Subject = "this is a test"
.Body = "nothing to see here"
.Display
End With
End Sub