CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
A) Quel nom choisir ?
Excel permet de nommer une plage de cellules d'aprÈs un nom, plutôt que de faire systématiquement appel à son adresse.
Avant de regarder comment nommer une plage de cellules Excel, il convient de s'interroger sur la façon de nommer une cellule.
Il n'existe aucune rÈgle établie et donc aucun garde-fou pour empÊcher d'utiliser un nom absurde ou peu pratique. L'utilisateur est seul maitre de son choix.
Il est cependant vivement conseillé d'éviter d'utiliser des signes comme « éà.,;/:! » etc. Ils faussent la lecture, et se rappeler du nom d'une plage contenant des caractÈres spéciaux peut Être difficile.
De plus il est intéressant de donner un nom en rapport direct avec les données que nous manipulons. Baptiser « surface » une cellule contenant un montant en Francs n'a pas son pareil pour embrouiller l'utilisateur.
Notons tout de mÊme que certains caractÈres ne sont pas acceptés, comme l'espace. En général, on symbolise donc un espace dans le nom de la plage par un « _ ».
B) Donner un nom à une plage
Pour
cela, il suffit de rentrer un nom dans la case d'adressage et de valider par
Attention,
un nom ne peut Être donné qu'une seule fois ! Si nous rentrons un
nom déjà utilisé, Excel nous envois directement sur la cellule en
question. De plus, si
Une cellule nommée de cette façon possÈde le solide avantage de pouvoir Être appelée depuis n'importe quelle fonction Excel par son nom. Cette référence agit comme une adresse absolue, soit dans l'exemple ci dessus, « taux_tss » est un équivalent exact de « $B$3 ».
Autre avantage, une cellule nommée, pour peu que son nom ait été conçu intelligemment, permet de mieux comprendre le but d'une formule.
Exemple :
Utilisons notre taux de TSS pour calculer le montant des taxes à partir d'une liste de prix.
Puis, calculons le prix total, TSS incluse.
PremiÈre étape : Nommer la cellule contenant le taux de 5% « taux_tss ».
Seconde étape : Mettre en place la formule faisant référence aux prix HT en plage B6:B11.
TroisiÈme étape : Mettre en place la formule calculant le prix total.
Nous obtenons le tableau suivant :
Bilan :
L'étirement des formules de calcul de montant de la taxe a été facilité par le fait que l'utilisation d'une cellule nommée soit considérée comme une adresse absolue.
La lisibilité de la formule est bien meilleure.
Au premier coup d'oeil, on comprend qu'on manipule une valeur monétaire, et qu'on essaye de calculer un montant de taxe (pratique en cas de reprise d'un travail existant).
B) Nommer une plage de plusieurs cellules
Nommer une plage de plusieurs cellules implique le mÊme procédé que nommer une seule cellule, puisque pour Excel une plage contenant une ou plusieurs cellules est synonyme.
Les avantages sont les mÊmes que dans le nommage d'une cellule unique.
Afin de différencier les plages de cellules uniques et les plages de cellules multiples, il peut Être intéressant de convenir à l'avance d'une façon différentes de les nommer.
Par exemple en préfixant tous les noms de plages de cellules multiples par « pl_ ».
Ceci est une proposition et en aucun cas une obligation. Mais une telle gymnastique est une bonne façon de commencer à organiser ses données si on pense utiliser de nombreuses plages nommées.
Exemple : Nommons notre plage contenant les prix HT et calculons la somme de ces prix.
De plus, la formule devient pour ainsi dire du français. Au premier coup d'oeil, on comprend intuitivement que SOMME(pl_prix_ht) est Une somme de prix hors taxe !
Excel permet d'importer des données extérieures et de les ordonner correctement en fonction des lignes et colonnes, si la source est pré-disposée pour permettre ce genre de manipulation. En général c'est le cas, pour peu que les personnes ayant préparé le fichier soient prévenues que l'utilisation ultérieure se fera à partir d'Excel.
On appelle formatage le découpage du fichier source. Excel est capable d'en reconnaitre et d'en utiliser plusieurs. En général un formatage simple et efficace est un formatage oÙ les données sont séparées par des tabulations, ou bien oÙ les données d'un certain type sont rigoureusement ordonnées en colonne.
Reprenons notre exemple vu ci-dessus. Faisons un copier coller de notre tableau (sans les sommes) directement dans un fichier texte créé pour l'occasion.
Nous obtenons un fichier prix.txt ressemblant à cela aprÈs le collage :
Nous observons que les colonnes ne sont pas toutes correctement respectées. Les données de chaque colonne initiale sous Excel sont en effet séparées par une tabulation. Certaines données courtes sont donc décalées par rapport aux autres. Celles qui se ressemblent le plus au niveau longueur restent bien ordonnées.
Retournons maintenant dans Excel et positionnons-nous dans un nouvel onglet. Le menu Données/Données Externes/Importer des données permet de demander à Excel de récupérer les données contenues dans notre fichier texte.
La fenÊtre ouverte propose des types préétablis de liens vers des bases de données et autres, qui ne nous intéressent pas dans le cadre d'un import de données simple. Il permet par contre également de parcourir le réseau afin de trouver le fichier source que l'on souhaite importer.
Ne pas oublier de préciser le type de fichier (*.txt) et son nom.
La fenÊtre suivante propose un aperçu de ce qu'Excel a pu trouver dans le fichier ciblé.
Excel a déjà plus que maché le travail en déterminant que nos données sont de type Délimité, ce qui sous entends délimité par un caractÈre particulier (tabulation, point-virgule).
Ce choix nous convient, mais il est possible de demander un autre moyen de traitement le cas échéant. On peut également spécifier la ligne à partir de laquelle importer nos données. Pour le moment satisfaisons-nous de ceci et validons cette page en cliquant sur Suivant.
A) import pour les fichiers délimités
Excel ayant reconnu un fichier délimité, il propose par défaut la tabulation, qu'il pense avoir identifié comme notre délimiteur. Notons au passage qu'on peut utiliser des données délimitées par d'autres symboles que la tabulation, et mÊme les indiquer nous mÊme si ils ne font pas partie de la liste.
La derniÈre étape permet de choisir le type de format colonne par colonne. Excel propose comme indiqué de présenter les nombres sous formes de nombres, les dates en dates et le reste en caractÈres.
Cette derniÈre étape de préparation à l'import terminé, Excel retourne au classeur ouvert et propose d'insérer les données dans celui-ci dans n'importe quel onglet existant ou d'en créer un nouveau.
Nos données sont rapatriées à bon port.
Notez qu'une sélection de tout le contenu du fichier texte et un simple copié-coller dans Excel suffisait pour reproduire exactement la mÊme manipulation. Excel reconnait en effet automatiquement les tabulations dans les données externes et considÈre automatiquement chacune d'elles comme un changement de colonnes.
B) Import pour les fichiers à largeur fixe
Supposons maintenant que nous avons affaire à un fichier contenant non plus des données séparées par un caractÈre précis, mais simplement par des espaces de sorte que chaque colonne soit rigoureusement alignée.
A nouveau, Excel reconnait ce type de formatage, et propose donc dans la premiÈre étape de traiter un fichier à largeur fixe.
L'étape 2 diffÈre du traitement de fichiers délimités. Excel propose à nouveau de façon spontanée un traitement aussi adapté que possible aux données, mais ce type de fichier demande souvent plus d'intervention de la part de l'utilisateur.
Excel indique la façon dont il va séparer les données (et donc les colonnes) par une flÈche verticale.
A l'aide d'un glisser-déposer, il est possible de changer la position des flÈches. Un simple clic gauche dans une zone vide de cellules permet de créer de nouvelles séparations. Un double-clique sur une flÈche existante permet de la supprimer.
Une rÈgle graduée au dessus de la présentation permet de représenter facilement les espacements.
Les étapes suivantes sont similaires au traitement des formats de colonnes pour l'import des fichiers délimités.
Une macro est un petit programme dans lequel on emmagasine des instructions Excel pour les exécuter sur commande.
Ex : Sélectionner une cellule, changer la police d'une plage, saisir des données dans une cellule, etc.
Lorsque qu'elle est appelée, une macro exécute les instructions qu'on lui a indiquées dans l'ordre oÙ elles ont été enregistrées.
Ex : Sélectionner une cellule, y saisir une valeur numérique puis afficher le tout en gras.
Une macro peut-Être appelée grace à un bouton, un menu, une autre macro, etc.
Le but des macros est, en un seul appel, de réaliser plusieurs actions
Qui sont réalisées souvent.
Qui nécessitent plusieurs clics.
Il est inutile de créer une macro pour exécuter des actions qui ne répondent pas à ces critÈres.
Excel permet de créer une macro simplement, par l'intermédiaire du mode graphique.
Le principe : On met en marche l'enregistreur de macros et on effectue les taches qu'on veut que la macro enregistre. L'enregistreur les met en mémoire dans la macro au fur et à mesure. Quand on a fini, on arrÊte l'enregistreur.
Ce genre de macro réalisées avec l'enregistreur permet de répéter des actions simples et ainsi d'automatiser des taches pénibles et chronophages.
A) Préparer le terrain : Afficher les barres d'outils utiles
Afficher la barre d'outils Visual Basique via le menu Affichage/ Barres d'outil/VB.
Cette barre se compose des boutons suivants :
- Exécuter une macro.
- Enregistrer une macro.
- AccÈs au menu sécurité (pour autoriser l'exécution de nos macros).
- Visual Basique éditor (pour voir oÙ et comment son enregistrées les instructions dans une macro).
- Boite à outils contrôle : Affiche une barre d'outils réunissant des outils parfois utilisés en parallÈle de la création de macros.
- Mode création : démarre ou interrompt le mode création.
- Microsoft Script Editor : Pour développer des applications liées au Web.
B) Préparer le terrain : Les autres accÈs
Les mÊmes fonctionnalités sont disponibles via le menu Outils/Macro.
C) Initialisation de l'enregistrement
Lancer l'enregistreur de macro en appuyant sur le bouton correspondant de la barre d'outils des macros.
La fenÊtre de l'enregistreur s'ouvre, comprenant :
- Une zone permettant de donner un nom à notre nouvelle macro.
- Une zone facultative permettant de décider d'un raccourcis pour son déclenchement.
- Un menu permettant de préciser oÙ enregistrer notre macro.
- Une zone facultative oÙ saisir une description de la macro.
Par défaut, la macro se baptise Macro1, ou suivi du numéro disponible suivant si une ou plusieurs macros existent déjà.
Il est possible d'enregistrer la macro dans le Classeur de macros personnelles, auquel cas la macro sera utilisable dans tous les classeurs Excel que l'utilisateur ouvrira dorénavant. C'est une sorte de super-classeur permettant de stocker une macro utilisée trÈs fréquemment et pour tous types de travaux Excel.
Une fois les zones renseignées et les choix validés, l'enregistreur est actif : A partir de maintenant et jusqu'à l'arrÊt de l'enregistreur, toutes les manipulations effectuées sur le classeur Excel seront gardées en mémoire dans Macro1.
Notez l'apparition d'un petit assistant comprenant deux boutons :
- Le bouton arrÊt de l'enregistreur, similaire à celui de la barre d'outils des macros.
- Un bouton permettant de passer du mode Références Relatives ou Absolues.
C) Enregistrement des actions
Afin de tester l'enregistrement de ma macro, effectuer une action quelconque telle que par exemple :
- Sélectionner une cellule.
- Écrire quelque chose dans la cellule sélectionnée.
- Changer la couleur de fond d'une cellule.
- Mettre le contenu d'une cellule en gras.
-
AprÈs avoir réalisé cette simple action, cliquer sur le bouton de la barre d'outils des macros interrompant l'enregistrement.
Bien que rien ne permette de le voir à l'écran sans accéder au menu macro, nous avons bien mis en mémoire une ou plusieurs actions, qu'Excel nous permettra de ressortir à volonté.
Pour le moment, nos actions enregistrées ne sont disponibles qu'à partir du menu des macros. Cliquer sur le bouton Exécuter une macro de notre barre d'outils nous permet de rappeler notre macro en la sélectionnant et en appuyant sur le bouton Exécuter.
L'action ou les actions que nous avions mis en mémoire dans la macro sont exécutées à nouveau. Elles le seront à chaque fois que nous les appellerons.
Pour plus de rapidité dans le lancement, cliquer à nouveau sur le bouton Exécuter une macro et sur Options. Nous avons la possibilité de donner un raccourci à notre macro, afin de pouvoir l'exécuter rapidement au clavier. Le raccourcis qui va Être donné va remplacer celui qui existe éventuellement déjà. L'utilisation du raccourci CTRL+L, qui est disponible, est conseillé pour ne pas risquer de mauvaise surprise.
Répéter l'opération en enregistrant une macro avec plus d'instructions permet de se faire une idée des possibilités de manipulations.
Exemple de macro à enregistrer :
- Début de l'enregistrement.
- Macro crée avec le raccourcis CTRL+L et appelée ma_macro_test.
-
Sélection de
- Écriture du mot « test » dans la cellule et validation par la touche entrée.
- Sélection de la cellule d'en dessous via les flÈches du clavier.
- Mise en gras de la cellule.
- Écriture du mot « miaou » dans la cellule et validation par la touche entrée.
- Fin de l'enregistrement.
D) Déclenchement pratique de nos macro
Il est possible de déclencher notre macro via le menu Outils/macro/Lecture, et ce autant de fois que désiré. Cependant, le principe étant de faire des macros uniquement pour des enchainements d'opérations utilisés réguliÈrement, il est nettement plus pratique de trouver un autre moyen de déclenchement, plus rapide et plus clair.
Pour cela nous disposons de trois moyens :
Il est possible de créer sur la feuille de calcul elle-mÊme un bouton déclencheur. La barre d'outils Formulaires nous donne accÈs à la création d'un tel bouton.
Créer un bouton spécial pour notre macro et le rendre disponible via à une barre d'outils. Pour cela, simplement aller chercher le menu Affichage/Barres d'outils/Personnaliser.
Le menu auquel nous accédons permet de modifier une barre d'outils existante ou 'un créer une nouvelle. Optons pour la seconde option et fabriquons-nous une barre d'outil uniquement réservés à nos tests et manipulations.
Entrez simplement un nom pour la nouvelle barre. Cela fait, la barre est traitée comme n'importe quelle barre déjà existante et disponible via les menus correspondants.
Nous constatons que :
- la barre nouvellement crée est ajoutée dans la liste des barres accessibles via le menu personnalisation que nous avons ouvert.
- La barre s'ouvre à coté de notre menu. Elle est vide pour le moment.
Occupons-nous maintenant de remplir cette nouvelle barre grace au second onglet Commandes.
Comme indiqué dans la boite de dialogue « Pour ajouter une commande à une barre d'outils : sélectionnez une Catégorie puis une Commande et glissez cette derniÈre hors de la boite de dialogue vers la barre d'outils. »
Nous obtenons une barre d'outils dotée d'un nouvel icône. Un simple clic gauche permet d'ouvrir le menu d'affectation d'une macro. Un clic droit et l'option Affecter une macro permet la mÊme modification.
Une sélection simple de notre macro permet de lier la lier à notre nouveau bouton.
Dorénavant, un simple clic sur notre bouton permettra de lancer la macro.
Il est enfin possible de rajouter un lancement de macro depuis un menu existant ou d'en créer un pour l'occasion. Pour cela, reprendre la création d'une nouvelle barre mais sélectionner cette fois l'option « nouveau menu » de la fenÊtre des Catégories dans l'onglet Commandes.
Un glisser-déposer sur la barre du menu en haut permet de créer notre menu.
Tant que la fenÊtre de personnalisation des barre d'outils est ouverte, nous pouvons répéter cette opération. En sélectionnant « Macro » dans l'onglet Commandes et en le déposant dans le menu encore vierge, nous pouvons rajouter indéfiniment des objets dans le menu.
Un simple clic droit une fois le menu enrichi permet de lier une macro aux choix de ce dernier, d'y changer le nom, de supprimer l'option
Si la fenÊtre de personnalisation des barres de menu est fermée, un clic gauche sur une option de menu non encore affectée permettra d'y ouvrir un menu pour lui dédier une macro.
Notez qu'il est possible d'ajouter un menu à un menu, créant ainsi un sous-menu, modifiable comme ci-dessus.
Excel est par défaut paramétré pour ne lire que les macros certifiées par Microsoft. Afin qu'Excel accepte systématiquement d'utiliser vos macros, il faut changer le degré de sécurité du logiciel via le menu Outils/Macros/Sécurité.
Le niveau de sécurité faible permettra l'exécution de toutes les macros sans distinction d'origine.
A) Ouverture de Visual Basic Editor
Lors de la création des macros, on a vu qu'Excel garde en mémoire les actions saisies par l'utilisateur.
OÙ et comment ces successions de commandes sont-elles stockées ?
Excel fait appel à un logiciel parallÈle appelé Visual Basic Editor (éditeur VB) pour gérer le contenu de ses macros.
Pour l'activer, cliquer sur le bouton correspondant de la barre d'outils des macros. Le nouveau logiciel s'ouvre sur une nouvelle application composée de deux fenÊtres.
L'éditeur VB nous propose un rapide tour d'horizon de ce qu'il parvient pour le moment à lire de notre travail. Il présente notamment deux choses : Les Projets et les Modules.
Un projet est l'image pour le VBA du classeur Excel. Chaque classeur possÈde son projet. Il regroupe tous les éléments de VB qui dépendent de mon classeur Excel.
Un module est un élément du projet VB. C'est un petit paquet de code, contenant une ou plusieurs macros. L'intérÊt d'avoir plusieurs modules est de se garder la possibilité de les exporter vers d'autres classeurs indépendamment les uns des autres si besoin.
Le premiÈre fenÊtre en haut à gauche est intitulée VBA Project. Elle présente, une fois les arborescences dépliée, les classeurs actuellement ouverts avec leurs onglets respectifs et quelques éléments propres au VBA Project :
- Le classeur EUROTOOL, qui est propre au fonctionnement d'Excel, auquel nous n'avons pas accÈs.
- Un projet par classeur Excel ouvert.
- Les Modules des classeurs que nous avons créés et qui sont actuellement ouverts.
La seconde fenÊtre est la fenÊtre des propriétés. Elle permet de donner des informations sur les objets sélectionnés dans la fenÊtre des projets.
Exemple : Sélection de la feuille 1 de notre classeur Excel :
B) AccÈs au code via Visual Basic Editor
Nous allons maintenant étudier comment Excel a stocké les informations concernant notre macro. Pour cela, double cliquer sur le Module relié à notre classeur dans la fenÊtre des projets. Une troisiÈme fenÊtre intitulée nom_classeur.xls – Module 1 (code) doit s'ouvrir.
Cette
fenÊtre permet de visualiser du code Visual Basique, c'est à dire
l'écriture permettant à Excel de transcrire les actions de notre macro
dans un langage compréhensible. Ce texte est appelé le code de
Toutes les macros sont ainsi enregistrées dans un module de code. L’enregistreur de macro a créé et inséré le module de code MODULE1 qui contient la macro dÈs l'enregistrement de celle-ci. Un module de code peut contenir plusieurs macros. On peut créer pour un projet autant de modules qu’on le désire.
C) Lire et comprendre le concept de code en VB et sa syntaxe
Comme on l'a vu plus haut, chaque macro développée en VB est un ensemble d'instructions écrites en Visual Basique.
Une liste d'instruction se lit de haut en bas.
Chaque instruction est résolue entiÈrement avant de passer à la suivante.
Les
commentaires sont ignorés lors de l'exécution. Ils ne sont là que pour
permettre au programmeur des petites notes visant à améliorer
En VB, on a l'habitude de mettre une instruction par ligne, pour améliorer la lisibilité. Éventuellement, une instruction trop longue pour rester lisible sur une seule ligne sera écrite en plusieurs lignes. Chaque fin de ligne sera alors signifiée par un _ précédé d'un espace. Il convient de considérer cela comme une mise à la ligne purement syntaxique, pour une lecture plus agréable, et n'a aucune conséquence sur le code.
Un retrait (tabulation) est effectuée pour séparer les groupes d'instructions afin d'améliorer la lecture.
Les noms donnés par l'utilisateur respectent les rÈgles suivantes :
- Le premier caractÈre est une lettre.
- Les minuscules et majuscules ne sont pas différenciées, bien qu'on se serve généralement d'une majuscule pour signifier un nouveau mot dans une chaine de caractÈre dépourvue d'espacements.
- Ne pas utiliser les mots clés réservés au VB.
- Ne pas utiliser de points, espaces, de !, de $, de # et de @.
- Un nom ne peut dépasser 255 caractÈres.
- Ne pas utiliser de mot ressemblant à une référence de cellule
- Ne pas nommer de façon ressemblante deux éléments n'ayant rien en commun.
Les données notées entre [] sont facultatives.
Les données entrés entre <> sont à remplacer par les données en question.
D) L'aide à la saisie
L'éditeur VB reconnait les mots clés saisis par l'utilisateur. Il donne spontanément des couleurs particuliÈres au code, permettant une meilleure lisibilité.
Bleu pour les mots clés.
Vert pour les commentaires.
Rouge pour les lignes en erreurs de syntaxe.
Au fur et à mesure de la frappe d'une fonction, il propose de l'aide à la programmation en affichant sous la ligne un encadré jaune indiquant les arguments qu'une fonction peut recevoir, ainsi que leur type.
E) L'aide en VBA
L'aide se présente
sous la forme d'une description de l'élément et de sa fonction, suivi des
précisions sur
En informatique, une variable est une donnée qu'on demande au programme de mémoriser pour la réutiliser ultérieurement.
ConcrÈtement, c'est une demande de mise à disposition d'une petite quantité de mémoire dans l'ordinateur, dont on souhaite là mise à disposition et que l'on baptise pour la retrouver facilement.
Une variable est donc caractérisée par trois choses : Son Nom, son Type et son Contenu.
Par convention, les Noms des variables sont exempt d'espaces et de caractÈres accentués. Souvent on utilise une majuscule en début de mot.
Voici ci-dessous la liste des Types de variables en VBA.
Les valeurs chiffrées :
Byte (1 octet) Contient de 0 à 255
Integer (entier) Contient de -32 768 à 32 767
Long (entier long)
Single (réel) Contient de -3,4E38 à 1,4E-45
Double (réel double) +/- 1000 Milliards.
Decimal Jusqu'à 28 chiffres aprÈs la virgule.
String (chaine de caractÈres)
Boolean (booléen) True ou False.
Date (Dates et heures)
Variant (tous types)
Object (objet) Le type de l'objet est directement utilisable.
Pour créer une variable, il faut au préalable la déclarer, c'est à dire la créer en précisant son nom. Les déclarations de variable sont en principe regroupées en début de bloc d'instruction, pour plus de lisibilité.
Il y a deux façons de déclarer une variable en VBA. La déclaration peut Être implicite ou explicite.
Une déclaration implicite se fait à tout moment d'un bloc d'instructions. On se contente de donner un nom à une variable et d'y stocker un contenu. On ne précise pas le type de variable, qui est alors considéré automatiquement comme Variant. L'inconvénient est que ce type de variable occupe beaucoup de mémoire et est à mÊme de ralentir l'exécution du programme. C'est donc à éviter autant que possible.
Une déclaration explicite signifie qu'on précise le type de la variable utilisée et qu'on la présente sous une forme codifiée en début de programme.
Il existe plusieurs mots clés pour indiquer que l'on va déclarer une variable. Leur différence se situe principalement dans la destination que l'on souhaite donner à la variable.
Dim permet de déclarer une variable qui sera utilisable au niveau du bloc d'instruction oÙ la déclaration est faite. Elle peut donc Être accessible par une partie du module ou par le module entier.
Private permet de déclarer une variable qui sera disponible pour tout le module oÙ la déclaration est faite.
Public permet de déclarer un variable utilisable dans tous les modules de tous les projets Excel ouverts.
Static permet de déclarer une variable qui gardera sa valeur pendant son bloc d'utilisation.
As est utilisé juste avant l'indication du type de variable, quelle que soit le mot clé utilisé pour définir l'accÈs à la variable.
Exemples :
Nom = 'Quentin' déclare une variable de type Variant appelée Nom.
MaSomme = 12000 déclare une variable de type Variant appelée MaSomme.
Dim Total As Integer déclare une variable appelée Total qui sera un entier
Dim Adresse As String déclare une chaine de caractÈres appelée Adresse.
Private Montant_1 As Double déclare un nombre réel appelé Montant.
Des raccourcis permettent de faire des déclarations de variables plus rapidement. On peut rajouter un suffixe pour demander un type de variable
% Pour une variable de type Integer
& Pour une variable de type Long
! Pour une variable de type Single
# Pour une variable de type Double
@ Pour une variable de type Curency
$ Pour une variable de type String
Exemples :
Dim nom$ Déclare une variable Nom de type String.
Dime SommeDue@ Déclare une variable SommeDue de type Currency.
L'affectation d'une valeur à une Variable peut se faire lors de la déclaration de la variable ou à n'importe quel moment du programme.
Exemples :
Dim Total As Integer = 50000
Private Montant As Single = 28,54
Nom = 'Quentin'
Montant = 28,53
Une constante n'est ni plus ni moins qu'une variable dont la valeur ne changera pas tout au long du programme.
Sa déclaration se fait avec le mot clé Const. Elle possÈde un type tout comme les variables. On peut rendre une constante disponible pour tous les modules ouverts grace à l'instruction Public Const.
Exemple : Const Pi As Single = 3,14
Un tableau est une variable particuliÈre, possédant plusieurs valeurs.
Il sagit d'un tableau comme celui qu'on pourrait écrire sur un papier : avec des titres de cases et une valeur à saisir pour chacune d'elles.
Exemple : On souhaite faire un tableau contenant les jours de chaque mois du premier trimestre.
La déclaration correspondante est :
Trimestre = Array('Janvier', 'Fevrier', 'Mars', 'Avril')
On dispose ainsi d'un tableau avec quatre entrées, que l'on peut remplir avec les valeurs que l'on souhaite.
Attention, un tableau commence à la case 0 !
La restitution des données se fait sous la forme suivante :
<nom du tableau>(<numéro de la case souhaitée>)
Exemple :
Avec l'exemple ci-dessus,
Trimestre(2) renvois la valeur 'Mars')
QUELQUES INSTRUCTIONS DU LANGAGE VBA
Voici un petit lexique des instructions de notre macro en langage Visual Basique. Vous n'avez pas à les apprendre par coeur bien sur, il est plus sympathique de piocher dedans quand vous en aurez besoin. Leur utilisation vous fera les mémoriser au fur et à mesure.
Range('adresse de la plage').Select : permet de sélectionner une plage.
Exemples :
- Range('B10').Select
- Range('B10:B15').Select
ActiveCell.FormulaR1C1 = 'test' : permet de rentrer la valeur test dans une cellule.
Exemples :
- ActiveCell.FormulaR1C1 = 'coucou'
- ActiveCell.FormulaR1C1 = '=SOMME(A1:A8)'
Range('A4').Value = 'test' : est un équivalent.
Range('A4') = 'test' : également.
Selection.Font.Bold = True/False : permet d'affecter à la sélection actuelle une police d'écriture en gras.
Exemples :
- Selection.Font.Bold = True
- Selection.Font.Bold = False
Selection.Interior.ColorIndex : permet de changer la couleur de fond de la cellule sélectionnée.
Exemples :
- Selection.Interior.ColorIndex = 3 (change la couleur du fond en rouge)
La bonne traduction de ces instructions nous permettent de comprendre la démarche de notre bloc d'instructions pas à pas.
Pour donner donner plusieurs instructions à un seul objet de code, il est possible de mettre toutes les instructions à l'intérieur d'un bloc comportant l'instruction With.
Étudions le bloc d'instructions suivant :
Sub Test_Titre ()
With Range ('A1')
.Font.Bold = True
.Interior.ColorIndex = 3
End With
End Sub
L'instruction With permet de traiter plusieurs caractéristiques d'un objet, sans avoir besoin de le nommer à chaque ligne. Son nom est sous entendu avant chaque commande. On aurait pu écrire :
Sub Test_Titre ()
Range ('A1').Font.Bold = True
Range ('A1').Interior.ColorIndex = 3
End Sub
Dans cet exemple, l'économie de lignes et la clarification du code n'est pas frappante, mais dans un bloc conséquent, cette syntaxe est pratique et évite bien des erreurs.
L'instruction Si (If) permet d'exécuter des instructions en fonction du résultat d'une condition. Elle se termine par un End If.
On l'utilise en posant notre condition, suivi d'un bloc d'instruction qui sera effectué si la condition est réalisée.
On sépare la condition du bloc d'instruction à réaliser par le mot clé Then, qui va systématiquement de paire avec un If.
Nous aurons donc
Prenons un exemple de code l'utilisant. Ces instructions
vérifie si
Sub Test_Vide()
If IsEmpty(Range('A1')) Then
Range('A1').Interior.ColorIndex = 3
End If
End Sub
Si la cellule est vide, la couleur de fond est établie à Rouge (code 3).
Nous pouvons développer un peu avec
Reprenons notre exemple et complétons le.
Sub Test_Titre()
If Not IsEmpty(Range('A1')) Then
Range('A1').Interior.ColorIndex = 3
Else
Range('A1').Interior.ColorIndex = 4
End If
End Sub
Si la cellule est vide, la couleur de fond est établie à Rouge (code 3), sinon elle passe à Vert (code 4).
Cette instruction permet d'effectuer un bloc d'instruction spécifié en fonction de la valeur d'une expression. Sa syntaxe utilise le mot clé Select Case, suivi de l'expression à tester. Plusieurs variantes des tests d'expressions sont possibles :
- Indiquer une valeur précise.
- Indiquer plusieurs valeurs.
- Indiquer une plage de valeurs à suivre.
- Indiquer une formule générale de supériorité ou infériorité.
- Indiquer un cas autre (Else).
Select Case Range('A1')
Case 1
Range('A2').Value = 'cas 1'
Case 2, 3
Range('A2'). Value = 'cas 2'
Case 4 to 10
Range('A2'). Value = 'cas 3'
Case Is >= 11
Range('A2'). Value = 'cas 4'
End Select
On aurait également pu mettre en dernier :
Case Else
Range('A2'). Value = 'cas 4'
Les boucles permettent d'effectuer un traitement répétitif de plusieurs façons.
Il en existe plusieurs types, qui ont toutes leur intérÊt propre. Elles abordent toutes le mÊme problÈme par un biais différent afin de répondre aux différents cas rencontrés en programmation.
A)
Exécute un bloc d'instruction un nombre de fois indéterminé.
Il en existe deux variantes :
Do While <Condition>
<instructions>
Loop
Cette version ne commence à exécuter les instructions que si la condition renvoie True, et boucle sur elle mÊme le nombre de fois indiqué.
Do
<instructions>
Loop While <Condition>
Cette version exécute une premiÈre fois les instructions, puis teste si la condition renvoie True pour recommencer le nombre de fois indiqué.
Exemple d'une boucle Loop :
Sub Saisie_nombre()
Dim Reponse
Do
Reponse = InputBox('Entrez un nombre > 100')
Loop While (Reponse <= 100)
End Sub
Ce bloc de code demande à l'utilisateur de saisir un chiffre. Tant que celui ci est inférieur à 100, la boucle recommence.
On peut quitter la boucle en cours de traitement avec
Exemple d'une boucle Loop interrompue :
Sub Saisie_nombre()
Dim Reponse
Do
Reponse = InputBox('Entrez un nombre > 100')
If Not IsNumeric(Reponse) Exit Do
Loop While ( Reponse <= 100)
End Sub
B)
Exécute une boucle un nombre de fois déterminé par l'utilisateur. Pour cela, l'utilisateur doit indiquer une variable qui servira de compteur. Le compteur est par défaut augmenté automatiquement de 1 à chaque passage de la boucle (via l'instruction Next).
For <compteur> = <valeur de départ> To <valeur de fin>
<Instructions>
Next
Exemple d'une boucle For :
Sub Affiche_Couleurs()
Dim i As Integer
For i = 1 to 56
MsgBox 'voici la couleur correspondant au code '&i
Range('A1').Interior.ColorIndex = i
Next i
End Sub
La boucle est initialisée avec un entier comme compteur. Il commence à la valeur 1 et bouclera un certain nombre de fois avant de s'arrÊter à 56. Chaque passage le fait augmenter de 1 automatiquement.
Il est possible de préciser un changement de pas du compteur différent de 1 à chaque boucle. Pour cela il faut completer la syntaxe avec l'option Step.
Exemple d'une boucle For avec un pas différent de 1:
Sub Affiche_Couleurs()
Dim i As Integer
For i = 1 to 56 step 10
MsgBox 'voici la couleur correspondant au code '&i
Range('A1').Interior.ColorIndex = i
Next i
End Sub
On peut quitter la boucle en cours de traitement avec
C)
Il est possible de signaler qu'on souhaite parcourir une
série d'objets du mÊme type, en effectuant pour chacun d'eux le
mÊme traitement. Cela évite de traiter chaque objet l'un aprÈs
l'autre en un travail répétitif. Pour cela, on utilise
Sa syntaxe est la suivante :
For Each <élément> In <Groupe>
<Instructions>
Next <élément>
Exemple : Changeons la couleur de fond d'une plage de cellules en fonction de la valeur de chaque cellule la constituant.
Sub Couleurs_Cellule()
Dim ZoneAModifier As Range
Dim Cellule As Range
Set ZoneAModifier = Range ('A1:B10')
For Each Cellule In ZoneAModifier
Select Case Cellule
Case Is < 1000
Cellule. Interior.ColorIndex = 1
Case Is < 5000
Cellule. Interior.ColorIndex = 2
Case Is < 10000
Cellule. Interior.ColorIndex =
Case Is < 20000
Cellule. Interior.ColorIndex = 4
Case Else
Cellule. Interior.ColorIndex = 5
End Select
Next
End Sub
En changeant le contenu des cellules concernées et en relançant la macro, on observe un changement de couleurs en fonction de ces valeurs.
On
peut quitter la boucle en cours de traitement avec
D)
Cette boucle permet d'effectuer un mÊme traitement sur un lot d'objets de mÊme type.
Exemple :
Sub MiseEnPage()
With ActiveSheet
.PageSetup.Orientation = xlLandscape
.Columns('A:Q').EntireColumn.AutoFit
.PrintOut
End With
End Sub
Cette fonction définit la mise en page au format paysage, rétrécit les colonnes A à Q et imprime. Toutes ces instructions traitent de la page courante, mais l'instruction With nous a permis d'omettre de le préciser.
Les opérateurs permettent des opérations sur des variables ou des constantes, des comparaisons et des tests de conditions.
On distingue quatre types d'opérateurs :
- Arithmétiques, permettant d'effectuer des calculs à partir de variables.
- De Comparaison, permettant de comparer des valeurs ou des chaines de caractÈres.
- Logiques, permettant de tester des valeurs booléennes (conditions).
- De Concaténation, permettant d'assembler les chaines de caractÈre
Les opérateurs arithmétiques :
+ Addition
- Soustraction
/ Division avec résultat flottant
Mod Reste de la division entre deux nombres
Division avec résultat entier
* Multiplication
^ Élévation à la puissance
Les opérateurs de comparaison :
< Inférieur à
<= Inférieur ou égal à
> Supérieur à
>= Supérieur ou égal à
= Egal à
<> Différent de
Les opérateurs logiques :
AND Si le résultat de l'une des sous-conditions est faux la condition entiÈre sera fausse.
OR Si le résultat d'au moins une sous condition est vrai, la condition entiÈre est vraie.
XOR Si une et une seule des sous conditions est vraie, la condition entiÈre est vraie.
NOT Renvoie le contraire de l'expression.
Aqv Renvoie vrai si les deux sous-conditions sont identiques.
L'opérateur de concaténation :
& Permet de réunir des portions de chaines de caractÈre pour n'en former qu'une.
Excel permet une interaction avec l'utilisateur pendant le déroulement d'une macro à travers des boites de dialogue préétablies.
A) InputBox
Avec InputBox, l'utilisateur saisie une valeur qui est renvoyée dans le code par la boite de dialogue.
Elles servent lorsque on a besoin que l'utilisateur précise une valeur et que celle-ci soit utilisée ensuite dans le code. Ce peut Être une valeur chiffrée, du texte
La syntaxe est la suivante :
InputBox(Prompt [, Title, Default, Xpos, Ypos, Helpfile, Context])
Exemple :
Sub test_dialogue()
Dim texte As String
texte = InputBox('message à faire passer', 'titre général de la boite')
End Sub
On n'est tenus de renseigner que le Prompt. Les autres champs sont tous facultatifs.
Si Xpos et Ypos sont renseignés, ils permettent de placer le coin supérieur gauche de la boite de dialogue à l'intersection des deux positions.
Helpfile est un nom éventuel de fichier d'aide contextuelle. Context est un numéro de contexte dans l'aide.
B) MsgBox
Affiche un message à l'utilisateur. Éventuellement des boutons peuvent Être ajoutés pour demander une saisie limitées à quelques choix (trois maximum). On les utilise souvent pour demander une réponse type Oui/Non à l'utilisateur.
La Syntaxe est la suivante :
MsgBox (<message> [<boutons>, <titres>, <helpfile>, <context>])
Cet commande renvois une valeur en fonction de l'objet qui a été validé par l'utilisateur. Si il y a plusieurs boutons, cela permet de savoir lequel d'entre eux a été validé.
Les arguments <Boutons> peuvent Être des noms de constantes ou directement des chiffres, afin de simplifier le codage de la fonction.
Quelques valeurs que peuvent prendre les arguments <Boutons> avec le nom de leur constante, la valeur chiffrée et l'effet reproduit :
vbOKOnly 0 Affiche le bouton OK uniquement.
VbOKCancel 1 Affiche les boutons OK et Annuler.
VbYesNo 4 Affiche les boutons Oui et Non.
VbYesNoCancel 3 Affiche les boutons Oui, Non et Annuler.
Deux exemples pour un mÊme résultat :
Sub test_box()
Dim Reponse
Reponse = MsgBox('Voulez vous confirmer ?', vbYesNo, 'Confirmation')
End Sub
Sub test_box2()
Dim Reponse
Reponse = MsgBox('Voulez vous confirmer ?', 4, 'Confirmation')
End Sub
Dans cet exemple, la variable strRep peut Être réutilisée dans la suite du programme comme n'importe quelle variable.
Un ensemble de lignes de code comme ceux que donnent les macros enregistrées grace à l'enregistreur est appelé une procédure, c'est à dire est un ensembles d'instructions qui s'exécutent les unes à la suite des autres, tout simplement.
L’enregistreur de macro ne génÈre que des procédures. Les autres types de blocs de code doivent Être tapées à la main directement dans les modules du classeur. Les procédures peuvent Être elles aussi saisies directement par l'utilisateur, bien sur.
Une procédure commence par le mot clé Sub suivi du nom de la procédure et d’une liste d’arguments entre parenthÈses (qui peut Être vide). Elle se termine par le mot clé End Sub.
Une procédure a donc la syntaxe suivante :
Sub NomProcédure([argument_1,, argument_n])
Instruction 1
Instruction 2
Instruction n
End Sub
Par convention :
- On note les éléments facultatifs du code entre [].
- On insÈre une tabulation avant chaque élément d'un mÊme bloc d'instruction. On appelle cette notation une indentation (tabulation).
- Le code qui suit le caractÈre ' (apostrophe) est ignoré lors du traitement et sert donc de commentaire, uniquement destinés à faciliter la lecture du code.
Exemple : Les arguments ci dessus sont indiqués entre crochets. Les éléments de notre procédure sont tabulés afin de faire apparaitre plus facilement d'une part le début et la fin de notre procédure, et d'autre part le bloc d'instructions qui y sont liées.
Une fonction est un ensembles d'instructions qui s'exécutent les unes à la suite des autres et qui renvoit une valeur.
Une fonction commence par le mot clé Function suivi du nom de la fonction et d’une liste d’arguments entre parenthÈses (qui peut Être vide). Elle doit comporter à un moment de son traitement le valeur de retour. Celle-ci s'indique par le nom de la fonction suivie du égal et de la valeur qu'on souhaite renvoyer. La fonction se termine par le mot clé End Function.
Function NomFonction([argument_1,, argument_n])
Instructions
NomFonction = Expression ' valeur de retour
End Function
Une fonction codée en VB sous Excel est considéré comme une fonction disponible à l'utilisation par Excel et peut-Être directement appelée dans une cellule d'Excel comme n'importe quelle fonction.
L'éditeur VBA fonctionne sous deux modes : le mode Création et le mode Débugage. Le mode normal n'est interrompu que lorsqu'un problÈme survient et que le VB Editor entre en mode débugage, par exemple à la suite de la validation de ce type de fenÊtre d'alerte.
L'entrée en mode débugage permet d'illuminer en jaune la ligne qui pose problÈme. Mais on ne peut simplement relancer le programme à ce stade. Pour repasser en mode création, un clic sur l'icône correspondant est nécessaire.
Le mode de débugage permet d'interrompre indéfiniment le programme et le conserver dans l'état dans lequel il se trouvait au moment ou le problÈme est survenu.
Les outils d'aide correction de problÈmes qui suivent restent actifs en mode débugage et permettent de faire le point le cas échéant avant de reprendre le mode normal et relancer le programme.
L'éditeur VBA permet de placer des espions sur certains éléments du code. Le principe est de garder un oeil en permanence sur l'élément en question pendant toute la durée du déroulement du programme.
En cas d'arrÊt inopiné, le message d'erreur habituel s'affichera, mais vous ne serrez pas les mains vide pour tenter de comprendre ce qui a pu poser problÈme.
La fenÊtre d'espionnage vos ferra en effet un exposé rapide de l'état de votre programme au moment du crash.
A) OÙ placer des espions ?
On peut placer des espions sur une variable, une constante, un tableau, une procédure, une fonction
Afin de placer l'espion, le plus simple est de positionner le curseur sur l'élément de code qu'on souhaite surveiller et de faire un clic droit en sélectionnant Ajouter un espion.
La fenÊtre d'ajout d'un espion s'ouvre alors. Si l'utilisateur a accédé à cette fenÊtre par un clic droit et Ajouter un espion sur un élément, celui-ci est automatiquement proposé, ainsi que sa procédure et son module. Sinon les champs sont à blanc et l'utilisateur est invité à les remplir.
Trois options existent pour les espions :
- Expression espionne permet d'avoir la valeur de l'élément.
- ArrÊt si la valeur est vraie est utilisé avec les booléens.
- ArrÊt si la valeur change est utilisé avec une variable.
B) Exemple d'utilisation d'un espion
Voici une procédure qui contient une erreur classique :
Sub truc()
mon_tableau = Array(lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche)
For i = 1 To 7
MsgBox ('la case du tableau courante est celle du ' & mon_tableau(i))
Next i
End Sub
Plaçons ensuite deux espions, un sur la variable mon_tableau et un autre sur notre compteur i.
Si notre boucle se passe bien, rien n'est affiché.
Comme notre boucle va se bloquer au dernier passage de la boucle, nous allons avoir un message d'erreur demandant si l'utilisateur souhaite abandonner (Fin) ou bien avoir accÈs à la procédure de débugage.
Si nous demandons le lancement de la procédure d'étude du problÈme, l'éditeur VB nous indique la ligne oÙ l'erreur a eu lieu en la surlignant en jaune.
La fenÊtre d'espionnage nous donne plus d'informations.
Elle détaille rapidement la nature et l'état actuel des variables espionnées.
L'erreur ne saute pas forcément aux yeux, mais une lecture un
peu minutieuse fera notamment apparaitre que la case 6 du tableau est bel et
bien la derniÈre, alors que la variable i est égal à
L'éditeur VB permet d'exécuter du code ligne par ligne et mÊme instruction par instruction. Cela permet de suivre l'évolution du programme et, couplé avec les espions, de suivre l'évolution des variables et du traitement effectué par notre code.
Là aussi, le but est de traquer les erreurs éventuelles ou dépister une erreur signalée lors de l'exécution du programme.
L'option déroulement pas à pas s'exécute à
partir du menu Débogage de VBA Editor. Il est également simplement
appelable à tout moment grace à
Prenons un exemple simple de procédure. La proposition ci dessous est une procédure bouclant une dizaine de fois en incrémentant à chaque fois un compteur. A chaque tour, il écrit dans la cellule de colonne A et de ligne correspondante au compteur la valeur de celui-ci. Puis il écrit « terminé ! » aprÈs la derniÈre cellule concernée par la boucle.
Un simple appel de
La ligne active changera à chaque appel de F8 et montrera le déroulement du programme et les éventuels sorties inopinées et autres problÈmes rencontrés.
Des variantes du pas à pas sont proposés par Excel, notamment avec la pose de points d'arrÊts afin de limiter une exécution. Les curseurs ainsi créés sont principalement utilisés pour exécuter rapidement un programme jusqu'à un certain point souhaité par l'utilisateur.
Pour créer un curseur, cliquer simplement sur la bordure grise à gauche du code (au niveau du disque rouge sur l'image ci-dessous).Pour l'effacer, cliquer à nouveau au mÊme endroit.
Lors de l'exécution d'une macro, le curseur provoquera l'arrÊt de celle-ci au niveau de la ligne oÙ à été placé le curseur.
Lors d'un pas à pas, la présence d'un curseur permettra également de s'arrÊter automatiquement à son niveau.
Tous ces moyens de traquer un problÈme survenu dans une portion de code ne prennent tout leur intérÊt que couplés les uns aux autres en mÊme temps.
Un problÈme invisible au premier coup d'oeil sera en général rapidement débusqué grace à un pas à pas bien limité par un curseur, avec affichage de l'état des variables en temps réel.
A) Le Principe
VBA est un langage orienté objet.
Le but de la programmation objet, plutôt que de taper du code en une longue liste pouvant dépasser les dizaines de milliers d'entrées, est d'épargner des lignes de codes en les réunissant en blocs distincts, d'une part, et de rendre le code le plus évolutif possible en organisant clés blocs de façon logique, d'autre part.
La programmation objet part du principe que beaucoup des éléments manipulés dans le code peuvent Être réunis en grands groupes.
Ou inversement, qu'on peut réfléchir, avant de commencer à taper du code, à une façon d'organiser notre démarche.
B) L'Objet
Un objet est un modÈle d'éléments retrouvés plusieurs fois dans le logiciel qui, à la demande d'une ligne de code convenue à l'avance,.renvoie un effet.
Dans Excel, ces objets sont par exemples des cellules, des images, etc.
Dans un langage orienté objet, tout est objet.
C) Un exemple concret plutôt qu'un long discours
Parler d'objet n'est qu'une façon d'organiser les choses. Dans notre vie quotidienne, tout peut également se classer grace à des objets. Prenons l'exemple du Chien. Le Chien répond à certains critÈres bien précis.
Il possÈde :
Une fourrure
Des pattes
Des oreilles
Un museau
Il peut :
Aboyer
Manger
Courir
Faire le mort
Gémir pitoyablement pour faire croire qu'il est affamé
Courir aprÈs un objet Chat
On distingue déjà deux types d'informations liées à notre objet Chien :
Ce qu'il possÈde obligatoirement, les propriétés qui le décrivent. En informatique, elles peuvent Être assimilé à une variable.
Exemples :
Dim Fourrure As String = 'marron'
Fourrure = 'marron'
Dim nbr_pattes As Byte
nbr_pattes = 4
Ce qu'il peut provoquer comme effet sur le code, qui peut Être assimilable à un bloc d'instructions. On appelle ces blocs des méthodes.
Exemples :
Sub Abboyer(aboiement.mp3)
<Instructions>
End Sub
Le principe de commencer à coder en pensant Objets revient à dire qu'on va énumérer autant de caractéristiques que possible et fabriquer un modÈle qui vaudra pour tous les chiens.
Quand on aura ensuite besoin de créer un chien, on demander à ce modÈle de se réaliser et de nous créer un chien en particulier.
On appelle le modÈle du chien sa CLASSE.
On appelle un chien créé à partir de cette classe un OBJET chien, ou une instance.
On pourrait comparer ce procédé à la réalisation d'un vÊtement grace à un patron. Que le vÊtement soit tiré à 1 ou 10 000 exemplaires ne change rien au patron. Qu'ils soient tous fait avec le mÊme tissu ou bien tous différents n'y change rien non plus.
Exemples avec une Cellule Excel :
Propriétés de la Cellule
- Une coordonne de ligne
- Une coordonne de colonne
- Une hauteur
- Un contenu
-
Méthodes de la Cellule
- Effacer le contenu
- Augmenter la hauteur
- Se détruire
- S'encadrer
- S'affecter une police de caractÈre
-
Quelques exemples d'Objets que nous rencontrerons avec Excel :
L'objet Range est une plage de cellules.
L'objet Workbook est un classeur.
L'objet Worksheet est un une feuille de classeur (onglet).
Quelques rÈgles liées aux objets :
Tout objet créé possÈde systématiquement les propriétés et les méthodes définies dans sa classe lorsqu'il est créé. On appelle ce processus naturel l'héritage.
La liste complÈte des objets crées à partir d'une mÊme classe est appelée Collection.
Un objet peut contenir d'autres objets : Un Workbook contient un ou plusieurs Worksheet qui contiennent eux-mÊme un ou plusieurs objets Range.
A) Les collections
Une collection est une liste d'objet de mÊme type.
Exemples :
- Workbooks est la collection des objets Workbook.
Elle liste donc tous les
classeurs ouverts.
- Worsheets est la collection des Worksheet. Elle liste tous les onglets d'un classeur.
Quelques objets et leurs collections :
Workbook Un classeur Excel.
Workbooks Collection de tous les classeurs Excel ouverts.
WorkSheet Feuille de classeur.
Worksheets Collection des onglets d'un Classeur.
Range Plage de Cellules
ActiveWorkBook Objet Workbook représentant le classeur de la fenÊtre active.
ActiveCell Objet
Range représentant la premiÈre cellule active de la fenÊtre
active ou
spécifiée.
Selection Objet Range représentant la ou les cellules sélectionnées.
B) Un exemple complet d'Objet
Compte tenu du nombre important d'objets dans Excel, nous allons prendre un exemple via l'explorateur d'objets proposé par Visual Basique Editor. Commençons par ouvrir la fenÊtre de recherche des objets afin de rechercher des informations sur l'objet Range.
La fenÊtre de l'explorateur s'ouvre. Elle contient plusieurs zones que nous allons étudier.
La liste des bibliothÈques actuellement chargées.
Une bibliothÈque est une liste d'objets. Ces objets sont regroupés par logiciels ou groupes de logiciels. Par exemple nous pouvons avoir accÈs au objets spécifiques à Excel ou aux objets spécifiques à tout le Pack Office.
Le texte recherché.
Permet de saisir un texte à rechercher, par exemple
une partie du nom d'un objet qu'on recherche, etc. Une fois le texte saisi, la
validation se fait par
Saisissons le mot Range dans la zone de recherche. Nous obtenons la fenÊtre ci dessous.
C'est à dire que nous avons ici un aperçu de l'ensemble
des classes de
La portion de fenÊtre tout en bas permet d'avoir des détails sur l'objet sélectionné.
La portion de fenÊtre de droite est celle qui nous donne tout sur l'objet sélectionné : Méthodes, Propriétés, Événements, Constantes
Penchons-nous donc sur notre objet Range (plage de cellule).
Nous notons rapidement que les Méthodes sont appelées Function en anglais alors que les Propriétés sont appelées Properties.
Un icône différent est affiché pour les propriétés
Et pour les méthodes.
Nous constatons également qu'il existe beaucoup de méthodes et de propriétés ! Mais gardons à l'esprit qu'Excel est un logiciel trÈs complet avec de nombreuses années d'existences pour s'enrichir petit à petit.
Quelques exemples de propriétés facilement compréhensibles :
Font Police de caractÈre actuelle de la plage.
Column Colonne de la cellule active de la plage.
Offset Adresse de la plage.
RowHeight Hauteur de ligne de la cellule active de la plage.
Worksheet Onglet de la Plage.
D'autres objets intéressants à observer : Font, Sheets, Module1, Feuil1
C) La syntaxe hiérarchique
La manipulation des objets a été rendue intuitive par la méthode de syntaxe hiérarchique à l'aide de séparations par des points des divers objets concernés.
Selection.Font.Bold = True
Une lecture un peu intuitive nous permet de traduire cette phrase barbare en interprétant chacune de ses parties. Pour résumer on traduit grosso-modo par :
« On confirme activer le
mode gras pour
la police de caractÈre de la selection actuelle »
On note trois niveaux dans l'instruction que nous étudions : Sélection, Font et Bold. Toutes ces précisions se réfÈrent à la Sélection actuelle.
On donne à Sélection le nom d'objet manipulé.
Selection : La sélection actuelle.
Font : La police de caractÈre.
Bold : En gras.
= True : est vrai/Validé/Sélectionné
On s'adresse à un objet en énumérant les objets successifs l'incluant, en séparant les précisions de niveau par des points.
Exemples :
- Workbooks('Classeur1.xls').Worksheets('Feuil1')
Cette instruction permet de faire référence à la feuille de calcul de nom Feuil1 du classeur ouvert de nom Classeur1. L'objet concerné est donc de type Worksheet.
- Workbooks('Classeur1.xls').Worksheets('Feuil1').Range('A1')
Cette instruction permet de faire référence à
Maintenant que nous avons vu un peu ce que sont les classes, objets, instances, méthodes et autres propriétés, revenons à la question principale :
OUI MAIS POURQUOI ?
C) L'avantage de programmer Objet
Le langage objet est par définition hyper évolutif.
Tout nouveau besoin de travailler sur un sujet peut se traduire par la création d'un ou plusieurs nouveaux objets et leurs classes respectives.
Un objet publique peut voir sa méthode changée par l'utilisateur simplement en réécrivant cette méthode à l'intérieur du nouvel objet. On peut donc créer des exceptions avec des objets ne répondant plus vraiment à leur héritage de classe standard, pour peu qu'on écrase l'information normale en réécrivant tout ou partie du code.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2013
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved