Ouvrir Outlook depuis Excel VBA

Bonjour le forum,

J'ai un petit code qui me créer un mail avec dedans une sélection dans ma feuille, le problème c'est que le mail ce crée que quad Outlook est ouvert. Voici le message d'erreur afficher quand j'utilise la macro alors que Outlook est fermer.

image
Sub envoyermail()

Dim oOutlook As Object

On Error Resume Next
    Set oOutlook = GetObject(, "Outlook.Application")
    On Error GoTo 0

    If oOutlook Is Nothing Then
        Shell "Outlook.exe", vbHide
    End If

    Dim oMail As Object
    Set oMail = oOutlook.CreateItem(0)
    Range("BonLivraison").Activate
    With oMail

         Dim oObjetWord As Object
         Set oObjetWord = .GetInspector.WordEditor

         .To = "mailtest@mail.com"
         .Subject = "Bon de Livraison" & ThisWorkbook.Name
         .Body = ActiveCell
         Selection.Copy
         oObjetWord.Range(0).Paste

         .Display
    End With
End Sub

Merci pour votre aide.

Cordialement.

bonjour,

une proposition

Sub envoyermail()

Dim oOutlook As Object

    Set oOutlook = CreateObject("Outlook.Application")

    Dim oMail As Object
    Set oMail = oOutlook.CreateItem(0)
    Range("BonLivraison").Activate
    With oMail

         Dim oObjetWord As Object
         Set oObjetWord = .GetInspector.WordEditor

         .To = "mailtest@mail.com"
         .Subject = "Bon de Livraison" & ThisWorkbook.Name
         .Body = ActiveCell
         Selection.Copy
         oObjetWord.Range(0).Paste

         .Display
    End With
End Sub

Bonjour,

Merci pour ta proposition mais il y a une erreur dans le code:

image

Cldt.

bonsoir,

essaie ceci alors. j'ai pas compris pourquoi ma proposition précédente ne fonctionne pas.

Sub envoyermail()

    Dim oOutlook As Object

    On Error Resume Next
    Set oOutlook = GetObject(, "Outlook.Application")
    On Error GoTo 0

    If oOutlook Is Nothing Then
        Shell "Outlook.exe", vbHide
        Set oOutlook = GetObject(, "Outlook.Application")
    End If

    Dim oMail As Object
    Set oMail = oOutlook.CreateItem(0)
    Range("BonLivraison").Activate
    With oMail

    Dim oObjetWord As Object
        Set oObjetWord = .GetInspector.WordEditor

        .To = "mailtest@mail.com"
        .Subject = "Bon de Livraison" & ThisWorkbook.Name
        .Body = ActiveCell
        Selection.Copy
        oObjetWord.Range(0).Paste

        .Display
    End With
End Sub

Bonsoir,

Ceci fonctionne

Sub envoyermail()

    Dim oOutlook As Object

    '// assignation application Outlook
    Set oOutlook = CreateObject("Outlook.Application")
    If oOutlook.Explorers.Count = 0 Then
        oOutlook.Session.GetDefaultFolder(olFolderInbox).Display
        oOutlook.ActiveExplorer.WindowState = olMinimized
    End If

    Dim oMail As Object
    Set oMail = oOutlook.CreateItem(0)
    Range("BonLivraison").Activate
    With oMail

         Dim oObjetWord As Object
         Set oObjetWord = .GetInspector.WordEditor

         .To = "mailtest@mail.com"
         .Subject = "Bon de Livraison" & ThisWorkbook.Name
         .Body = ActiveCell
         Selection.Copy
         oObjetWord.Range(0).Paste

         .Display
    End With

End Sub
    
       

Bonsoir,

Super merci beaucoup Thev, comme d'habitude vous êtes au top!

Bonne soirée.

Bonsoir H2SO4,

j'ai pas compris pourquoi ma proposition précédente ne fonctionne pas.

Lorsqu'on utilise l'éditeur Word dans l'envoi d"un mail, il est nécessaire que l'explorateur OutLook soit activé.

Bonsoir Thev,

Merci pour l'explication !

Rechercher des sujets similaires à "ouvrir outlook vba"