Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. Communication avec les applications Office
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

Communication avec les applications Office

La technologie Automation

1. Présentation

Automation, appelée également OLE (Object Linking and Embedding) ou OLE Automation, est une technologie vous permettant de manipuler les objets d’une autre application directement à partir d’Excel ou de VBA Excel.

Pour fonctionner, Automation nécessite un client et un serveur appelé serveur OLE. Le serveur est l’application ou le composant qui fournit les services au client. Le client (appelé également contrôleur) utilise ces services pour piloter l’application serveur et manipuler ses objets. Par exemple si vous lancez un publipostage Word à partir de VBA Access, Access est le client et Word le serveur OLE.

Une bibliothèque d’objets est un fichier, doté généralement d’une extension olb, fournissant les informations permettant de manipuler les objets mis à disposition par un serveur. Vous pouvez utiliser l’Explorateur d’objets pour examiner le contenu d’une bibliothèque d’objets.

Pour avoir accès aux objets d’une autre application, vous devez référencer sa bibliothèque d’objets de la façon suivante :

 Sélectionnez l’option Références du menu Outils. La boîte de dialogue Références s’affiche alors avec tous les serveurs OLE enregistrés dans la base de registre.

images/11RI01N.png

 Activez ensuite les références souhaitées.

Le numéro précisé dans le nom de la bibliothèque d’objets correspond à la version de Microsoft Office (12.0 pour la version 2007, 14.0 pour la version 2010, 15.0 pour la version 2013 et 16.0 à partir de la version 2016 et pour les Office 365).

2. Utilisation de la technologie Automation

Pour pouvoir manipuler les objets d’une autre application, vous...

Communiquer avec Word depuis Excel

1. Le modèle objet Word

images/10word.png

2. Principales collections du modèle objet Word

AddIns

Collection d’objets AddIn représentant les modèles et compléments disponibles dans Word, qu’ils soient actuellement chargés ou non.

AutoCaptions

Collection d’objets AutoCaption représentant les légendes ajoutées automatiquement lorsque des éléments tels que des tableaux et des images sont insérés dans un document.

CaptionsLabels

Collection d’objets CaptionLabel représentant les intitulés des légendes ajoutées automatiquement lorsque des éléments tels que des tableaux et des images sont insérés dans un document.

COMAddIns

Collection d’objets COMAddIn représentant les compléments COM (Component Object Model) accessibles depuis Word.

Dialogs

Collection d’objets Dialog représentant les boîtes de dialogue intégrées de Word.

Documents

Collection d’objets Document représentant tous les fichiers actuellement ouverts dans Word.

FileConverters

Collection d’objets Converter représentant tous les convertisseurs de fichier disponibles pour l’ouverture et l’enregistrement de fichiers depuis Word.

Languages

Collection d’objets Language représentant toutes les langues disponibles dans Word pour les vérifications linguistiques.

ListGalleries

Collection d’objets ListGallery représentant les trois bibliothèques de modèles de puces et numéros (Avec puces, Numéros et Hiérarchisation).

RecentFiles

Collection d’objets RecentFile représentant les derniers fichiers ouverts dans Word.

Tasks

Collection d’objets Task représentant l’ensemble des applications en cours d’exécution.

Templates

Collection d’objets...

Communiquer avec Access depuis Excel

1. Le modèle objet Access

Extrait du modèle objet Access :

images/10access.png

2. Principales collections du modèle objet Access

COMAddIns

Collection des macros complémentaires (objets COMAddIn) inscrites dans Access.

Forms

Collection des formulaires (objets Form) actuellement ouverts dans une base de données Access.

Modules

Collection des modules standards et modules de classe (objets Module) actuellement ouverts dans une base de données Access.

Printers

Collection d’objets Printer représentant toutes les imprimantes disponibles sur le système actuel.

References

Collection d’objets Reference représentant les références VBA d’une base de données Access.

Reports

Collection des états (objets Report) actuellement ouverts dans une base de données Access.

3. Principaux objets du modèle objet Access

DBEngine

Objet représentant le moteur de base de données Microsoft Jet.

DoCmd

Objet permettant d’effectuer des actions Access telles que la fermeture de fenêtres, l’ouverture de formulaires, d’états… La plupart des actions macros peuvent être converties en VBA à partir de l’objet DoCmd.

FileDialog

Objet représentant une boîte de dialogue permettant d’effectuer des actions sur un fichier (ex : ouverture d’un fichier, enregistrement d’un fichier…).

LanguageSettings

Objet renvoyant des informations sur les paramètres linguistiques d’Access.

Screen

Objet permettant d’accéder au formulaire, à l’état ou au contrôle qui a actuellement le focus.

CurrentProject (ou CodeProject)

Objet regroupant plusieurs collections d’objets Access spécifiques :

AllForms

Collection de tous les formulaires d’une base de données Access

AllMacros

Collection de toutes...

Communiquer avec Outlook depuis Excel

1. Les objets d’Outlook

AppointmentItem

Objet représentant une entrée du calendrier : une réunion, un rendez-vous ponctuel ou également des rendez-vous ou réunions périodiques.

ContactItem

Objet représentant un contact situé dans un dossier d’Outlook pouvant contenir des contacts.

Folder

Objet représentant un dossier d’Outlook.

JournalItem

Objet représentant une entrée de journal (enregistrement de toutes les transactions effectuées dans Outlook pendant une période donnée).

MailItem

Objet représentant un message électronique (e-mail) situé dans un dossier d’Outlook pouvant contenir des messages.

NoteItem

Objet représentant une note Outlook située dans un dossier pouvant contenir des notes.

PostItem

Objet représentant une publication située dans un dossier public que d’autres utilisateurs peuvent parcourir.

TaskItem

Objet représentant une tâche située dans le dossier Tâches d’Outlook.

2. Accès aux objets Outlook

a. Création d’un objet (e-mail, contact…) dans Outlook

La méthode CreateItem de l’objet Application permet de créer une instance d’objet pour un message électronique, un rendez-vous…

Exemple

Création d’un nouveau contact dans Outlook.

Sub Cree_Contact() 
Dim oAppOutlook As Outlook.Application 
Dim oContact As Outlook.ContactItem 
'  Lance une session Microsoft Outlook 
Set oAppOutlook = CreateObject("outlook.application") 
'  Crée un nouveau contact avec un nom et une adresse de messagerie 
Set oContact = oAppOutlook.CreateItem(olContactItem) 
oContact.LastName = "PEREZ Patrice" 
oContact.MailingAddress = "patrice.perez@orange.fr" 
' ...

Les objets liés ou incorporés

Il est possible de manipuler les objets liés ou incorporés dans Excel à partir de la collection OLEObjects d’objets OLEObject.

L’objet parent peut être un objet Worksheet ou un objet Chart.

Exemple

La procédure suivante modifie la taille et affecte une bordure à tous les objets incorporés dans la feuille de calcul Produits.

Sub Format_OLE() 
Dim ole1 As OLEObject 
For Each ole1 In Worksheets("Produits").OLEObjects 
   With ole1 
       .Height = 100 
       .Width = 100 
       .Border.Color = vbRed 
       .Border.LineStyle = xlContinuous 
       .Border.Weight = xlMedium 
   End With 
Next ole1 
End Sub 

1. Les méthodes de l’objet OLEObject

Activate

Duplicate

Add

Item

BringToFront

Select

Copy

SendToBack

CopyPicture

UpDate

Cut

Delete

2. Les propriétés de l’objet OLEObject

AutoLoad

True si l’objet est automatiquement chargé lorsque le classeur qui le contient est ouvert.

OLEType

Renvoie xlOLELink ou xlOLEEmbed.

Application

Name

AutoUpdate

Object

Border

Parent

BottomRightCell

Placement

Count

PrintObject

Creator

ProgId

Enabled

ShapeRange

Height

Shadow

Index

SourceName

Interior

Top

Left

TopLeftCell

LinkedCell

Visible

ListFillRange

Width

Locked

ZOrder

Méthodes et propriétés relatives aux liaisons Excel

1. Méthodes et propriétés de l’objet Workbook

ChangeLink (méthode)

Modifie une liaison entre deux documents.

ChangeLink (NAME,NEWNAME,type) 

NAME

Nom de la liaison à modifier.

NEWNAME

Nouveau nom de la liaison.

Type

Type de liaison à renvoyer : xlLinkTypeExcelLinks, xlLinkTypeOLELinks.

LinkInfo (méthode)

Renvoie sur la date de liaison et l’état de mise à jour.

LinkInfo(NAME,LINKINFO,Type,EditionRef) 

NAME

Nom de la liaison.

LINKINFO

Type d’informations à renvoyer : (xlUpdateState ou xlEditionDate).

Type

Type de liaison à renvoyer : xlLinkInfoOLELinks, xlLinkInfoPublishers ou xllinkInfoSubscribers.

EditionRef

Référence de la liaison s’il s’agit d’une édition.

LinkSources (méthode)

Renvoie un tableau Visual Basic des liaisons dans le classeur.

LinkSources(type) 

Type

Type de liaison à renvoyer : xlExcelLinks, xlOLELinks, xlPublishers, xlSubscribers.

OpenLinks (méthode)

Ouvre le document source d’une liaison.

OpenLinks(NAME,readonly,type) 

NAME

Nom de la liaison.

Readonly

Ouverture en lecture seule (True ou False).

Type

Type de la liaison : xlExcelLinks, xlOLELinks, xlPublishers ou xlSubscribers.

SaveLinkValues (propriété)

Propriété qui renvoie True si Excel enregistre les valeurs de liaisons externes dans le classeur.

SetLinkOnData (méthode)

Crée une procédure à exécuter lors de toute modification des données dans un lien.

SetLinkOnData(NAME,PROCÉDURE) 

NAME

Nom de la liaison.

PROCÉDURE

Nom de la procédure à exécuter lors de la mise à jour de la liaison.

UpDateLink (méthode)

Met à jour un lien.

UpDateLink(NAME,type) 

NAME

Nom de la liaison.

Type

Type de liaison : xlLinkTypeExcelLinks ou xlLinkTypeOLELinks.

2. Méthodes...