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 . Du coup, j'ai essayé d'adapter le code de ce fil mais sans succès.

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

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
Rechercher des sujets similaires à "macro outlook reference fonctionne pas"