Ouvrir outlook pour l'envoie de mail si il n'est pas actif

  • Initiateur de la discussion Initiateur de la discussion PEX
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PEX

XLDnaute Occasionnel
bonjour,

je reviens vers vous pour completer un code :

voila, j'ai programmer a la fermeture de mon fichier excel l'envoie d'un mail automatique apres enregistrement du fichier.
J'utilise a messagerie outlook. Quand outlook est ouvert le mail est envoyer puis receptionné ! Or quand outlook n'est pas ouvert le message ne s'envoie pas. J'aurai voulu comment je dois completer mon code pour que outlook se lance meme s'il nest pas ouvert .

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
 
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)
 
    strbody = "Bonjour" & vbNewLine & vbNewLine & _
              "" & vbNewLine & _
              " le fichier de gestion des frigos a été modifié le " & Now & " par " & Application.UserName & vbNewLine & vbNewLine & _
              "Ce mail est généré automatiquement" & vbNewLine & _
               "" & vbNewLine & _
                "" & vbNewLine & _
              "Veuillez ne pas repondre" & vbNewLine & _
              ""

    On Error Resume Next
    With OutMail
        .To = "...@....fr"
        .Cc = ""
        .Bcc = ""
        .Subject = "Suivi fichier gestion des stocks"
        .Body = strbody
              .Send
    End With
    On Error GoTo 0
 
    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub


cordialement

pex😕
 
Re : Ouvrir outlook pour l'envoie de mail si il n'est pas actif

Bonjour Pex 🙂,
A tester, déclarer les variables en réel Outlook
Code:
Dim OLApplication As Outlook.Application, OLMail As Outlook.MailItemSet OLApplication = CreateObject("Outlook.Application")
Set OLMail = OLApplication.CreateItem(OLMailItem)
sans oublier d'ouvrir la référence Microsoft Outlook XX.0 Object Library.
En principe, quand je l'utilisais comme ça, ça ouvrait OutLook (mais j'utilisais toujours .Display et pas .Send)
Bonne suite 😎
 
Re : Ouvrir outlook pour l'envoie de mail si il n'est pas actif

Bonjour Pex 🙂,
A tester, déclarer les variables en réel Outlook
Code:
Dim OLApplication As Outlook.Application, OLMail As Outlook.MailItemSet OLApplication = CreateObject("Outlook.Application")
Set OLMail = OLApplication.CreateItem(OLMailItem)
sans oublier d'ouvrir la référence Microsoft Outlook XX.0 Object Library.
En principe, quand je l'utilisais comme ça, ça ouvrait OutLook (mais j'utilisais toujours .Display et pas .Send)
Bonne suite 😎

j'ai declarer mais jai un soucis ... sa ne marche pas ! je le met avant mon code et j'ai une erreur ! au pire met le moi vis a vis de mon code et j'essairai ..

PS: je ne suis pas un fou du VBA j'apprend sur le tas rapidement mais parfois je comprend pas forcement tout du premier coup

cordialement

pex
 
Re : Ouvrir outlook pour l'envoie de mail si il n'est pas actif

Re 🙂,
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
'    OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(OLMailItem)
strbody = "Bonjour" & vbNewLine & vbNewLine & _
          "" & vbNewLine & _
          " le fichier de gestion des frigos a été modifié le " & Now & " par " & Application.UserName & vbNewLine & vbNewLine & _
          "Ce mail est généré automatiquement" & vbNewLine & _
           "" & vbNewLine & _
            "" & vbNewLine & _
          "Veuillez ne pas repondre" & vbNewLine & _
          ""
With OutMail
    .To = "...@....fr"
    .Cc = ""
    .Bcc = ""
    .Subject = "Suivi fichier gestion des stocks"
    .Body = strbody
    .Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Je ne vois pas à quoi sert Logon, donc je l'ai mis en commentaire 🙄...
Et sinon, n'oublie pas d'aller dans Outils -> Références... de chercher la bibliothèque "Microsoft Outlook XX.0 Object Library" et de la cocher 😛...
Bonne suite 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Réponses
6
Affichages
739
Réponses
17
Affichages
2 K
Réponses
2
Affichages
955
Retour