Le VBA : un langage orienté objet (Excel mais général) Flashcards

1
Q

Lorsque nous utilisons des méthodes, nous sommes parfois amenés à leur passer des arguments, ce qui se fera sous la forme suivante :

A

Objet.Méthode Argument1:=”Valeur”, Argument4:=”Valeur”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Objet.Méthode Argument1:=”Valeur”, Argument4:=”Valeur”
Le nom de l’argument est suivi de la combinaison “:=” et ensuite la valeur. Nous pourrions le faire sans nommer les arguments :

A

Objet.Méthode “Valeur”,,,”Valeur”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

POO

A

Le VBA est un langage orienté objet. On dira également que vous faites de la Programmation Orientée Objet (POO)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nous allons prendre comme exemple votre maison. Une maison est caractérisée par ses (1) : elle a une année de construction, une couleur… mais on peut aussi y faire beaucoup d’action : Nettoyer, Regarder la télé … on parle alors de (2).

A

(1)propriétés; (2)méthodes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

À partir de ces propriétés et méthodes, vous pouvez imaginer plein de maisons différentes, en faisant varier le nombre de pièces, par exemple. Les (1) permettent d’identifier la maison, de la caractériser, de la singulariser. Les méthodes forment toutes les actions que l’on peut exécuter à partir de cet objet.

A

(1)propriétés; (2)méthodes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Toutes ces maisons ont donc été fabriquées à partir d’un plan. On parle …

A

d’une classe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Lorsque vous fabriquez un objet à partir d’une classe, on dit que vous faites…

A

une instance de classe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

imaginez un architecte qui dessine un plan de maison. Le plan correspond ici à ma classe et les maisons aux objets : en effet, à partir du plan, vous pouvez bâtir autant de maisons que vous le voulez !! J’ajoute que la définition de toutes les maisons de l’Univers, même imbriquées dans des classes différentes s’appelle…

A

une collection d’objets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vous êtes dans votre maison et vous voulez prendre un bain (c’est une méthode), vous allez donc devoir vous rendre dans la salle de bain. Pour cela, il y a un ordre à respecter. Vous devez d’abord trouver la ville dans laquelle se trouve la maison, puis l’adresse précise et enfin trouver la salle de bain.

Puisque toutes les villes se ressemblent, nous pouvons considérer la classe Villes. De là, vous trouvez votre ville à vous, qui est une instance de Villes, ou un objet issu de Villes. Il en est de même pour la classe Maisons. Des maisons, il y en a des tonnes, mais la vôtre se distingue parce que c’est votre maison.

L’itinéraire à suivre est donc le suivant :

Ville > Maison > Salle de Bain > Bain

En code VBA, cet itinéraire se précise en partant du plus grand conteneur ; ici, la ville contient la maison, qui contient la salle de bain, et il y a la baignoire que nous désirons.

C’est comme les poupées russes : la ville est la plus grosse poupée qui contient toutes les maisons.

Les lieux et objets sont séparés par un point. Le code serait donc ceci :

A

Villes(“Reims”).Maisons(“Ma_Maison”).Salle_de_bains(“Bain”)

’ Dans la classe Villes, votre ville se distingue des autres par son nom : Reims.

’ Reims est un objet créé à partir de la classe Villes, qui contient aussi bien Paris que Bordeaux.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Vous accédez ainsi à (1) “Bain”. Entre parenthèses et guillemets, vous donnez des précisions. En effet, la baignoire se différencie des autres parce qu’elle permet de prendre un bain, vous ne pourriez pas construire un objet “Lavabo” à partir de la classe “Salle_de_bain” pour faire un bain.

Nous pouvons même rajouter une méthode à la fin, puisque vous désirez vous laver : (2)

A

1.l’objet

2.
Villes(“Reims”).Maisons(“Ma_Maison”).Salle_de_bains(“Bain”).Frotter_le_dos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Et si vous désiriez vous laver les mains, on aurait pu créer ce fameux (1) Lavabo, toujours issu de la classe Salle_de_bains

Tout ceci n’est que schéma bien sûr, mais la syntaxe correspond à celle d’un vrai code VBA. Vous prenez donc (1) crée à partir de la classe Salle_de_bain, vous prenez une instance de la classe Baignoire.

A

.1. objet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

L’accès aux objets se fait comme suit :

A

nom_de_la_classe(“Nom de l’instance de cette classe”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

le big des big objets, c’est …, qui désigne par exemple Microsoft Excel.

A

l’Application

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Pour Excel, c’est un peu la même chose : le big des big objets, c’est Application, qui désigne l’application Microsoft Excel.

Lui-même contient (1), qui regroupe tous les classeurs Workbook ouverts. Et Workbook contient …, qui contient toutes les feuilles Worksheet du classeur désigné.

A

(1) la classe Workbooks

(2) la classe Worksheets

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Nous allons faire nos débuts en POO avec la méthode … (qui vous amène) là où vous lui demandez.

A

Activate, qui active

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

je veux aller de la première feuille à la deuxième. Il va falloir donc nommer notre classeur et deux feuilles, afin de donner un itinéraire.

Enregistrez votre classeur en le nommant “Essai”. Renommez une première feuille “Départ” et l’autre “Arrivée”. (l’explication se trouve dans la seconde annexe).

Vous obtenez quelque chose dans ce genre :

A

Le code serait donc :

Sub trajet()

Application.Workbooks(“Essai”).Worksheets(“Arrivée”).Activate

‘On part de l’application vers l’instance Essai de la classe Workbooks

‘ensuite, on va à l’objet Arrivée de la classe Worksheets

End Sub

Toutefois, on peut le raccourcir : c’est comme avec les pièces de la maison, si vous êtes dans la maison, il est inutile de préciser qu’il faut aller dans cette ville et à l’adresse de la maison, puisque vous y êtes déjà.

Ici, vous êtes bien sûr l’application Microsoft Excel (logique) et vous êtes aussi sur le classeur “Essai”.

Le bon code est donc :

Sub trajet()

Worksheets(“Arrivée”).Activate

End Sub

17
Q

La classe … désigne tous les classeurs ouverts.

La classe …. désigne toutes les feuilles du classeur actif.

A

Workbooks

Worksheets

18
Q

Nous allons sélectionner une plage de cellules en tapant un code VBA.

Tout d’abord, il serait bien de ne pas avoir à taper des plages dans un code via les coordonnées : il y a tellement de chiffres, de lettres, de caractères (guillemets, deux points) qu’on s’y perdrait. Je vais donc vous apprendre à … nommer une plage de cellules ! Ça clarifie un code.

Voici comment on nomme une plage de cellule. Sélectionnez une plage de cellule, quelle qu’elle soit. Lorsque cette plage est sélectionnée, faites un clic droit et cliquez sur « Définir un nom » ect…

le code pour sélectionner cette plage:

A

.Sub MaSelection()

Range(“Ma_Plage”).Select

End Sub

19
Q

Les cellules sont sous la tutelle de la classe (1), que ce soit une cellule ou une plage de cellules (jointes ou non). Nous allons utiliser également la méthode (2), qui sélectionne ce que vous lui demandez de sélectionner.

A

(1) Range

(2) Select

20
Q

Quand on sélectionne une plage de cellules sur excel, toute les cellules sont bleu sauf une, en haut à gauche qui est blanche, c’est la cellule active.

Code si on veut que ça en soit une autre:

A

Sub MaSelection()

Range(“Ma_Plage”).Select

’ on sélectionne la plage Ma_Plage, qui relève de la classe Range, à l’aide de la méthode Select

Range(“C11”).Activate

‘la cellule C11 devient la cellule active de la sélection, avec la méthode Activate

End Sub

21
Q

vous devriez être capables de dresser une petite liste des propriétés possibles d’une maison :

Elle a une couleur : couleur

Un nombre de pièces : nombre_de_piece

Voici comment nous pourrions accéder à ces propriétés (toujours en supposant que notre maison est bien issue de la classe Maisons et que l’objet se nomme Ma_Maison) :

Maisons(“Ma_Maison”).couleur = “verte”

‘On dit que nous souhaitons accéder à l’objet Ma_Maison, de la classe Maisons

‘nous accédons à la propriété couleur et nous lui affectons une valeur

Nous pouvons faire de même avec la propriété nombre_de_piece, car la syntaxe est la même :

Maisons(“Ma_Maison”).nombre_de_piece = 7

Vous remarquez que nous pouvons affecter différents types de valeurs :

Type de valeur

Exemple

Numérique

1, 5, 12 365 …

Maisons(“Ma_Maison”).nombre_de_piece = 7

‘7 pièces par exemple

Chaîne de caractères

Bonjour, a, jojo, 1234 (ici, 1234 sera lu comme une suite de caractères : 1, 2, 3, 4, et non plus comme un nombre)

Maisons(“Ma_Maison”).couleur= “Rouge”

Booléen

TRUE, FALSE : le booléen ne peut prendre que deux valeurs, TRUE ou FALSE (vrai ou faux). Ainsi, nous pourrions imaginer le choix d’une maison avec étage ou de plain-pied. Si elle est avec étage, la propriété Etage pourrait valoir FALSE et si elle est de plain-pied, elle pourrait valoir TRUE.

Maisons(“Ma_Maison”).Etage = TRUE

’ Notre maison a au moins un étage

Constante

La constante est… assez particulière, mais pourtant très utilisée. Une constante est une valeur qui ne change pas. Par exemple, plusieurs constantes peuvent être valables pour notre objet. Elles peuvent ici désigner le type de notre maison.

Maisons(“Ma_Maison”).Type = VILLA

’ Notre maison est une villa

Maisons(“Ma_Maison”).Type = APPARTEMENT

’ Notre maison est un appartement

Les constantes propres à Excel commencent par le préfixe xl.

A

.

22
Q

Afin de voir en une fois nos quatre types de propriétés, nous allons créer une macro qui répond aux consignes suivantes :

- Taille du texte : 14
- Police du texte : Euclid
- Texte souligné
- Texte en gras

Vous l’avez sans doute compris, nous allons travailler sur une sélection de texte.

Code:

A

Sub texte()

Selection.Font.Size = 14

Selection.Font.Name = “Euclid”

Selection.Font.Underline = xlUnderlineStyleSingle

Selection.Font.Bold = true

End Sub

23
Q

Pour travailler sur la sélection, nous allons utiliser l’objet … . De plus, c’est l’objet … qui gère les polices.

A

Selection

Font

24
Q

La police se trouve dans la propriété … .

A

Name

25
Q

Le soulignement est géré par la propriété … . Cette propriété n’accepte que des constantes. Oui, ces mystérieuses constantes qui commencent par xl. Sachez que la valeur xlUnderlineStyleSingle applique un soulignement simple au texte. En effet, avec xlUnderlineStyleDouble, on peut appliquer au texte deux traits de soulignement.

A

underline

26
Q

Le gras est une propriété à lui tout seul : Bold. Particularité:

A

Bold n’accepte que deux valeurs : True ou False ; c’est donc un booléen. Si la propriété vaut True, le texte sélectionné sera mis en gras.

27
Q

Vous êtes dans votre maison et vous voulez prendre un bain (c’est une méthode), vous allez donc devoir vous rendre dans la salle de bain. Pour cela, il y a un ordre à respecter. Vous devez d’abord trouver la ville dans laquelle se trouve la maison, puis l’adresse précise et enfin trouver la salle de bain.

Puisque toutes les villes se ressemblent, nous pouvons considérer (1) . De là, vous trouvez votre ville à vous, qui est (2) , ou (3) issu de Villes. Il en est de même pour (4) Maisons. Des maisons, il y en a des tonnes, mais la vôtre se distingue parce que c’est votre maison.

A
  1. la classe Villes
  2. une instance de Villes
  3. un objet
  4. la classe
28
Q

Document.Content, propriété (Word)

A

Renvoie un objet Range qui représente l’article principal d’un document. tout le contenu

29
Q

comment remplacer la police du texte contenu dans le document actif par la police Arial de taille 10 (points).

A
Set myRange = ActiveDocument.Content 
With myRange.Font 
 .Name = "Arial" 
 .Size = 10 
End With
30
Q

Changer titre de l’application

A

Application.Caption = “www.developpez.com”

caption n	(words underneath a photo) (d'une image)	légende nf
 	The caption doesn't indicate who is in the photo.
 	La légende n'indique pas qui se trouve sur la photo.
31
Q

C’est la méthode qui possède le nom le plus clair. Cette méthode ferme l’application; n’oubliez pas de libérer l’instance de votre objet une fois que vous avez quitté l’application.

A

Application.Quit

32
Q

Un événement permet d’enclencher un traitement quand une action particulière a été faite par l’opérateur. Cela concerne en général des actions portant sur un objet. L’exemple le plus simple :

A

le clic sur un bouton produit une action, sinon ce bouton ne sert à rien. L’événement est “le clic sur le bouton”, la procédure associée est une procédure Sub de nom MonBouton_Click, cette procédure événementielle traite l’événement concerné. 

33
Q

(info) On peut classer les événements en fonction de l’objet concerné et de la manière de les traiter :  Ceux qui sont déclenchés par une action sur un contrôle placé sur un document Word, en général des formulaires  Ceux qui sont déclenchés par une action sur un contrôle situé sur une feuille (UserForm) ou une action sur la feuille elle-même.  Ceux qui sont prédéfinis dans ThisDocument.  Ceux qui sont déclarés par le programmeur dans un module de classe.

A

.

34
Q

fonction with

A
Ce code permet de définir différentes propriétés à la cellule active :
Sub proprietes()
    ActiveCell.Borders.Weight = 3
    ActiveCell.Font.Bold = True
    ActiveCell.Font.Size = 18
    ActiveCell.Font.Italic = True
    ActiveCell.Font.Name = "Arial"
End Sub

Nous pouvons utiliser With pour éviter les répétitions d’ActiveCell dans le cas présent.

Voici comment With fonctionne :
Sub proprietes()
   'Début de l'instruction avec : WITH
   With ActiveCell
        .Borders.Weight = 3
        .Font.Bold = True
        .Font.Size = 18
        .Font.Italic = True
        .Font.Name = "Arial"
   'Fin de l'instruction avec : END WITH
   End With
End Sub

ActiveCell n’est donc plus répété.