Envoi sélection par mail

Bonjour le forum,

je cherche à envoyer, via Outlook, un mail en insérant une sélection.

En glanant un peu, j'ai trouvé ce code :

Option Explicit

Sub EnvoiMail()

   Dim oOutlook As Object, oMail As Object, oObjetWord As Object

   Set oOutlook = CreateObject("Outlook.Application")
   Set oMail = oOutlook.CreateItem(0)
   Set oObjetWord = oMail.GetInspector.WordEditor

   With oMail

       .To = "...adresse..."
       .Subject = ThisWorkbook.Name
       Selection.Copy
       oObjetWord.Range(0).Paste
       .Display
       .Send

    End With

End Sub

Par contre j'ai une erreur "échec de l'opération" sur la ligne

Set oObjetWord = oMail.GetInspector.WordEditor

J'ai beau chercher, mais je ne trouve pas de réponse.

y a-t-il un prérequis?

Merci d'avance à ceux qui pourront m'aider.

Cordialement,

je rajoute un fichier test au cas où

70test.xlsm (16.74 Ko)

Bonjour Nico68

Pour ma part, cela fonctionne

Il n'y a pas de raison, sauf si vous êtes sur Mac

A+

Bonjour BrunoM45,

c'est pourquoi je me demandais s'il y avait une option à cocher ou décocher quelque part (dans Excel, dans VBA ou dans Outlook),

car chez moi, j'ai toujours le même message d'erreur sur cette ligne

Set oObjectWord = .GetInspector.WordEditor
image

Re,

ATTENTION !
L'instruction donnée en dernière, n'est pas la même que la précédente

Regardez bien la ligne, il manque quelque chose de crucial

A+

Re,

En effet je me suis emmêlé les pinceaux car j'ai testé plusieurs écriture...

c'est bien

Set oObjetWord = oMail.GetInspector.WordEditor

En revanche, cela ne fonctionne quand-même pas

Je remet le code complet au cas où il y aurait encore une coquille

Option Explicit

Sub EnvoiMail()

   Dim oOutlook As Object, oMail As Object, oObjetWord As Object

   Set oOutlook = CreateObject("Outlook.Application")
   Set oMail = oOutlook.CreateItem(0)
   Set oObjetWord = oMail.GetInspector.WordEditor
   With oMail

       .To = "...adresse..."
       .Subject = ThisWorkbook.Name
       Selection.Copy
       oObjetWord.Range(0).Paste
       .Display
       .Send

    End With

End Sub

Cordialement,

Re,

ATTENTION !
Il faut bien modifier

.To = "...adresse..."

Par une vraie adresse mail, car vous faites un ".Send" à la fin

A+

Ré,

oui, le

.to = "...adresse..."

était juste pour l'exemple.

Dans le fichier original, j'ai bien mis l'expéditeur.

Re BrunoM45,

Finalement, à force de recherche sur le forum, je suis tombé sur ce post :

Pour moi l'erreur est dû au fait que l'objet oMail n'est pas affiché,

Vous pouvez essayer comme ceci

Sub envoyerParMail()
  Dim oOutlook As Object
  Dim oMail As Object
  Dim oObjetWord As Object
  ' Créer les instances
  Set oOutlook = CreateObject("Outlook.Application")
  Set oMail = oOutlook.CreateItem(0)

  With oMail
    .Display
    Set oObjetWord = .GetInspector.WordEditor
    .To = "monmail@monmail.com"
    .Subject = "Extrait de la feuille" & ThisWorkbook.Name
    .Body = ActiveCell
    Selection.Copy
    oObjetWord.Range(0).Paste
  End With
End Sub

Réponse d 'un certain BrunoM45 sur un sujet similaire

Effectivement, en mettant

.Display

avant

Set oObjetWord = GetInspector.WordEditor

cela fonctionne parfaitement!

Merci donc à vous pour cette résolution direct et indirect

Cordialement,

Re,

Oups, je l'avais ajouté en plus, je pensais que c'était juste une erreur de recopie

Je comprends mieux

A+

Rechercher des sujets similaires à "envoi selection mail"