XL 2013 [VBA] Envoyer un mail avec Outlook sans Object Library

Mjgreg67

XLDnaute Junior
Bonjour le forum,

Vous trouverez en PJ de ce message un fichier Excel permettant d'ouvrir une fenêtre "Nouveau Message" du logiciel Outlook.

Mais ce code présente 2 problèmes :

=> Problème 1 : J'utilise Outlook 15.0 Object Library mais si une personne ouvrant mon fichier utilise Outlook 14.0 Object Library le code fonctionne pas.

=> Problème 2 ; Si la personne ouvrant mon fichier a la même version d'Outlook que moi mais que L'object library n'est pas cochée dans les références alors le code ne fonctionne pas non plus...

C'est très embêtant car je rencontre ce problème souvent avec mes collègues.

Existe t-il un code, aussi simple que celui que j'ai dans le fichier en PJ, qui permette de ne pas avoir besoin de cocher cette référence ?


Suite à des recherches sur internet j'ai trouvé la mode "Late Binding" mais... je ne comprends absolument pas comme cela fonctionne...

Quelqu'un peut m'aider ? :)

Merci !
 

Pièces jointes

  • Envoyer Email.xlsm
    16.2 KB · Affichages: 53

Mjgreg67

XLDnaute Junior
Re : [VBA] Envoyer un mail avec Outlook sans Object Library

Evidemment on a beau chercher on ne trouve jamais... Sauf 10 minutes après avoir poser la question.

Je partage ma trouvaille.

Si comme moi vous cherchiez un code qui vous permet d'envoyer un email sans OBJECT LIBRARY le voici :

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
 

Discussions similaires

Réponses
15
Affichages
2 K
Réponses
2
Affichages
110

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260