FAQ WordConsultez toutes les FAQ

Nombre d'auteurs : 20, nombre de questions : 289, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireVBA bisInterraction avec d'autres logiciels

Pour envoyer un document par mail, la méthode la plus simple est :

Methode SendMail
Sélectionnez

Sub EnvoiDoc()
ActiveDocument.SendMail
End Sub

Cette méthode va ouvrir Outlook et vous devrez entrez les destinataires dans les cases prévues. Le document se trouve en pièce jointe du message.

Vous avez aussi la possibilité d'utiliser une procédure qui fera appel à Outlook directement dans votre code. N'oubliez pas d'ajouter la bibliothèque Microsoft Outlook à votre projet.

Via Outlook
Sélectionnez

Sub EnvoiMail() 
Dim oApp As Outlook.Application 
Dim MyIt As MailItem 
Dim myAtt As Attachment 
Set oApp = CreateObject('outlook.application') 
Set MyIt = oApp.CreateItem(olMailItem) 
Set myAtt = MyIt.Attachments.Add(ActiveDocument.FullName) 
MyIt.To = 'LeNom@FAI.fr' 
MyIt.Subject = 'Sujet de l'envoi' 
MyIt.BodyFormat = olFormatHTML 
MyIt.Body = 'mon corps de message' 
MyIt.Send 
End Sub 

Le code ci-dessus va envoyer le document en tant que pièce jointe.
Si vous voulez que votre document soit le corps du message :

Document comme corps du message
Sélectionnez

Sub EnvoiMail()
Dim oApp As Outlook.Application
Dim MyIt As MailItem
'Dim myAtt As Attachment
Dim stTemp As String
Dim myRange As Range
Set myRange = ActiveDocument.Range
myRange.WholeStory
myRange.Select
stTemp = Selection.Text
 
Set oApp = CreateObject("outlook.application")
Set MyIt = oApp.CreateItem(olMailItem)
'Set myAtt = MyIt.Attachments.Add(ActiveDocument.FullName)
 
MyIt.To = "olivier.lebeau@mil.be"
MyIt.Subject = "Sujet de l'envoi"
MyIt.BodyFormat = olFormatHTML
MyIt.Body = stTemp
 
MyIt.Send
 
End Sub
Créé le 20 avril 2008  par Lebeau Olivier

VBA vous permet d'utiliser les librairies des autres logiciels et de cette manière utiliser les fonctionnalités des autres logiciels.

Les principes énoncés ci-dessous sont applicable à Word, mais aussi aux autres logiciels.

Pour pouvoir utiliser Word dans un autre logiciel, vous devez ajouter les références de Word dans votre projet.

Image non disponible

Dans la liste, vous devez choisir la librairie qui correspond à la version de Word que vous utilisez.

Image non disponible

Si vous ne référencez pas cette librairie, lors de l'utilisation de votre code, vous lèverez une Erreur.

Pour utiliser Word, vous devez déclarer un objet Word et lui affecter une valeur. Il existe plusieurs manières de travailler :

Affectation dès la déclaration
Sélectionnez

Dim wApp As New Word.Application
Déclaration et ensuite affectation
Sélectionnez

Dim wApp as Word.Application
Set wApp = CreateObject("Word.Application")

ou encore si une instance de Word est déjà ouverte et que vous souhaitez l'utiliser

 
Sélectionnez

Dim wApp As Word.Application
 
Set wApp = Word.Application

Il existe également une méthode qui ne nécessite pas le référencement de la librairie. Cette méthode est intéressante si vous ne connaissez pas la version de Word qui sera utilisée. Mais, il y a un mais, vous n'aurez pas l'aide à la saisie de votre code, les erreurs de frappe seront plus difficile à détecter.

Sans référencement à la librairie
Sélectionnez

Dim wApp As Object
Set wApp = CreateObject("Word.Application")

Cette dernière méthode est appelée le Late Binding ou Liaison Tardive, alors que les deux premières sont appelées Early Binding ou liaison précoce.
Si vous souhaitez utiliser une instance de Word déjà ouverte, utilisez dans ce cas la méthode GetObject.

 
Sélectionnez

Dim wApp As Object
Set wApp = GetObject( ,"Word.Application")
Mis à jour le 1er janvier 2009  par Lebeau Olivier

Lorsque vous utilisez un autre logiciel que Word, il est fréquent de faire appel à une autre bibliothèque.
Par exemple si vous désirez accéder à des données issues d'une base de données Access. Word ne permet pas cet accès, pour y arriver, vous devez ajouter la bibliothèque DAO et utiliser ses objets.

Image non disponible
Ouvrir la boîte de dialogue
Image non disponible
Choisir la référence

Dès que vous avez ajouté les références, l fonction IntelliSense est disponible.

Créé le 7 juin 2008  par Lebeau Olivier
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.