Manipuler l’application Excel
Objectifs
Vous avez vu jusqu’à présent les objets les plus élémentaires qu’Excel peut gérer, les cellules, puis vous avez découvert les feuilles et les classeurs.
Le niveau le plus élevé de cette hiérarchie est l’application Excel en elle-même.
Ce chapitre traite des propriétés et méthodes qui peuvent être utilisées en VBA, pour configurer l’application Excel. Il s’agira également de découvrir comment lancer une nouvelle application Excel ou simplement la quitter.
Enfin, vous trouverez quelques exercices qui vous permettront de travailler vos nouvelles connaissances.
L’objet Application
L’objet Application est l’objet le plus « haut » dans la hiérarchie des objets que vous pourrez manipuler avec Excel. Cet objet VBA représente l’application Excel elle-même, c’est-à-dire le programme Excel.exe qui tourne sur votre ordinateur.
À noter que cet objet Application existe également dans les autres applications Office/Microsoft 365 (Word, Outlook ou Access par exemple). Aussi si vous devez manipuler dans votre programme plusieurs applications (piloter une application Word depuis du code VBA Excel est possible !), il faudra faire précéder l’objet Application de l’application en elle-même, Excel.Application.
Déclarer l’application Excel
Comme vous l’avez vu dans les chapitres précédents, la première étape pour pouvoir utiliser un objet au travers d’une variable est de déclarer cette variable. La déclaration se fait simplement ainsi :
Dim xlApp As Application
'ou encore
Dim xlApp As Excel.Application
Exemple 1 : déclaration d’une variable de type Application
Le simple fait de déclarer une variable de ce type ne suffit pas pour lancer une nouvelle application Excel. Il faut d’abord affecter une valeur à cette variable pour la lancer.
Lancer une nouvelle application Excel ou utiliser...
Les propriétés de l’objet Application
Cette section vous présente quelques propriétés parmi les nombreuses que l’objet Application propose.
Les objets actifs : ActiveXX
Qu’il s’agisse d’une cellule, d’une feuille ou d’un classeur, il existe une propriété pour pointer directement sur l’objet actif en partant de l’objet Application.
'Obtenir le nom du classeur actif
Debug.Print Application.ActiveWorkbook.Name
'Obtenir le nom de la feuille active
Debug.Print Application.ActiveSheet.Name
'Obtenir l'adresse de la cellule active
Debug.Print Application.ActiveCell.Address
Exemple 6 : utilisation des propriétés Active de l’objet Application
Les propriétés d’affichage : DisplayXX, Visible
Parmi les éléments affichés dans Excel, plusieurs sont manipulables au travers d’instructions VBA.
Message d’avertissements : DisplayAlerts
Lorsque vous effectuez des insertions ou des suppressions de cellules ou de feuilles, Excel vous demande si vous êtes sûr de vouloir effectuer cette action.
Cet affichage peut être manipulé en VBA, au moyen de la propriété DisplayAlerts, qui contient une valeur booléenne.
'Active le message d'alerte
Application.DisplayAlerts = True
'Désactive...
Les méthodes de l’objet Application
Plusieurs de ces méthodes ont déjà été vues au travers des autres objets Excel évoqués dans les chapitres précédents. Voici cependant deux méthodes qui pourront vous permettre une gestion plus aboutie de vos programmes.
Parcourir dans l’Explorateur de fichiers : GetOpenFileName
Lorsque vous souhaitez offrir la possibilité à un utilisateur de sélectionner un fichier à ouvrir, Excel affiche la boîte de dialogue Ouvrir pour parcourir l’Explorateur de fichiers. Cette interface est réplicable en VBA grâce à la méthode GetOpenFileName.
Cette méthode vous permet de récupérer le chemin du fichier que l’utilisateur aura choisi.
La syntaxe générale de cette méthode est la suivante :
Application.GetOpenFileName([FileFilter],[FilterIndex],[Title],
[ButtonText],[MultiSelect])
Exemple 14 : syntaxe générale de la méthode GetOpenFileName
Les paramètres sont optionnels.
FileFilter est une chaîne de caractères qui permet de spécifier les critères de filtre des fichiers. Vous y indiquerez les extensions de fichiers qui seront sélectionnables. Si aucune valeur n’est fournie, tous les fichiers sont sélectionnables.
'Filtrer les sur les fichiers texte ou Excel ...
Exercices
Lancer une nouvelle application Excel
Créez une macro LancerNouvelleApplicationExcel.
Cette macro devra déclarer une variable de type Excel.Application et ouvrir une nouvelle application.
Exécutez la macro LancerNouvelleApplicationExcel, et vérifiez qu’une nouvelle application Excel est bien ouverte.
Obtenir les objets actifs
Créez une macro AfficherNomsObjetsActifs.
Cette macro affichera le nom du classeur actif puis le nom de la feuille active et enfin, la valeur de la cellule active.
Saisissez une valeur dans la cellule active et exécutez la macro (l’affichage doit correspondre aux valeurs attendues).
Parcourir quelques fichiers
Créez une macro AfficherNomsFichiersSelectionnes.
Cette macro devra afficher une fenêtre Ouvrir, avec le titre Choisissez judicieusement. L’utilisateur devra avoir la possibilité de choisir plusieurs fichiers, l’extension des fichiers sera *.txt.
Une fois que l’utilisateur a choisi 0, 1 ou plusieurs fichiers, la macro affichera Aucun fichier si l’utilisateur en a choisi 0, ou affichera l’ensemble des fichiers sélectionnés par MsgBox.
Exécutez la macro AfficherNomsFichiersSelectionnes, assurez-vous que les trois cas de figure sont bien pris en considération par votre code.