Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

Envois d'e-mail avec Microsoft Excel par Visual Basic for Application

, , , , , , , , , , , ,

Bien souvent il est utile de pouvoir envoyer envoyer un e-mail directement à partir d'une application sans combiner l'utilisation multiple de macro-commande dans les applications séparées.

Visual Basic for Application (VBA) permet cela aisément. Voyons la manière de le faire :

' Création d'un objet relatif à l'application Outlook
Dim OutlApp2 As New Outlook.Application
' Création d'un objet interne à l'application Outlook pré-déclarée e-mail
Dim OutlMail2 As MailItem
' Définition de la variable relative à l'application Outlook comme 
' nouvelle application (objet)
Set OutlApp2 = New Outlook.Application
' Définition de l'élément interne de l'application Outlook comme 
' création d'un nouvel élément mail
Set OutlMail2 = OutlApp2.CreateItem(olMailItem)
'Avec le nouvel élément mail, 
With OutlMail2
            ' Indique à qui doit parvenir l e-mail 
            .To = "adresse_ou_listeDeDistribution@domaine.ext"
            ' Indique le sujet du message
            .Subject = "Sujet_Du_Message"
            ' Indique le corps du message
            .Body = "Corps du message"
            ' L'attachement du fichier qui doit être présent 
            ' en tant que pièce jointe
            .Attachments.Add "\\chemin\fichier.ext"
            ' Affichage du message avant envois
            ' .Display  ' pour l'affichage du message
            ' Envois du message 
            .Send ' pour l'envoi direct du message
End With

Rien de plus... Vous pouvez aussi effectuer des envois avec Microsoft Word, Microsoft Powerpoint etc. Le code est similaire.
Il est important de noter que seul la méthode Send ou Display peuvent être employée mais non simultanément.

Le code étant suffisament commenté, je pense que tout est théoriquement clair.

Widgetize! Personnalisation d'une automatisationPremier widget envoyé !

Comments

Anonymous 6. September 2006, 06:31

teddy writes:

Salut,


quand je met ton code dans le VBE, au niveau de
Dim OutlApp2 As New Outlook.Application

il me met le message d'erreur

Erreur de compillation
type defini par l'utilisateur non defini.


Merci si tu as une idee d'ou cela peut venir.


Excel 2003 (Office 2003 SP1) P4 dual 2800 4Mo cache, 1Go ram 533, 500Go HD Raid, X650XT PCiE16x, P5lD2.


teddybear[-anti-spam-]scarlet.be

Anonymous 7. September 2006, 05:20

teddy writes:

De retour sur l'erreur...

Fallai juste referencer object library "Windows Outlook"...

Ca marche mnt...


Teddybear[-anti-spam-]scarlet.be

Groumphy 8. September 2006, 07:05

Hello,

En effet il faut référencer les librairies dépendantes de tes applications...
Je suis content que tu aies trouvé seul, car en premier temps je ne passe pas souvent sur le blog, ni je le met à jour... Et apparement il y a quelques problèmes pour être avertis par mail.

Heureux de t'avoir aidé par ce code !

Par contre, j'édite ton billet qui contient ton adresse mail, et cela dans le but de t'éviter le spam.

G.

Anonymous 2. November 2007, 20:46

Anonymous writes:

C'est clair comme du jus de chique.

Une reprise du code en explicite serai apprécié

Anonymous 2. November 2007, 20:47

PCI writes:

C'est clair comme du jus de chique.

Une reprise du code en explicite serai apprécié

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

Type the two words displayed in the image below:


Smilies