Vous êtes sur la page 1sur 15

A

Memento VBA

Le mémento présente la syntaxe des types, des déclarations de variables, des instruc-
tions, des opérateurs, des fonctions et des procédures VBA.
Cette présentation utilise les symboles suivants :
• […] : terme optionnel.
• (…) : termes semblables non formulés.

Types
Voici les différents types de variables disponibles en VBA :
• Nombres entiers : Byte, Integer, Long, LongLong, LongPtr.
• Nombres décimaux : Single, Double, Decimal, Currency.
• Valeurs booléennes : Boolean.
• Chaînes de caractères : String.
• Dates : Date.
• Union de tous les types : Variant.

Déclarations des variables


Les variables et les constantes sont déclarées Private par défaut. Elles peuvent être
déclarées Public ou Private de façon explicite.

Variables locales à une fonction ou à une procédure :


Exemples : Dim x As Integer, y As Double
Dim ch As String

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 1 07/08/12 07:05


2 ◆ Applications avec Excel

Variables globales à plusieurs procédures d’un même module :


Exemple : Dim resultat As Double (à placer en tête du code des procédures)

Variables globales dans un projet multimodule (applications avec formulaires…) :


Exemple : Public valeur As String (à placer en tête d’un module : Module1…)

Arguments d’une fonction ou d’une procédure :


Exemples : fct([ByVal ou ByRef] x As Integer,…) As Integer
proced([ByVal ou ByRef] y As Integer,…)

Affectation
Voici quelques exemples de syntaxes de l’instruction d’affectation :
x = 4, z = x + y, u = f(t)

Entrée d’information
L’instruction InputBox assure le tranfert d’information du clavier à la mémoire
centrale. Elle s’écrit par exemple de la façon suivante :
• x=InputBox("donne la valeur de x : ")

Sortie d’information
L’instruction MsgBox assure le transfert d’information de la mémoire centrale à l’écran.
Elle s’écrit par exemple de la façon suivante :
• MsgBox "Le résultat vaut : " & res

Instruction conditionnelle
L’instruction conditionnelle permet de construire une alternative en testant si la
condition est vraie ou non.
Syntaxes de l’instruction If…Then…Else…End If :
Forme standard Formes restreintes
• If Condition Then • If Condition Then
• Instruction n°1a • Instruction n°1a
• Instruction n°1b • Instruction n°1b
• (…) • (…)
• Else • End If
• Instruction n°2a •
• Instruction n°2b • If Condition Then Instruction
• (…)
• End If

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 2 07/08/12 07:05


Annexe A – Memento VBA ◆ 3

Forme imbriquée (cas général) Forme imbriquée (cas particulier)


• If Condition1 Then • If Condition1 Then
• If Condition2 Then • Instructions1
• Instructions2a • ElseIf Condition2 Then
• Else • Instructions2
• Instructions2b • ElseIf Condition3 Then
• End If • Instructions3
• Else • ElseIf (…)
• If Condition3 Then • (…)
• Instructions3a • [Else
• Else • (…)]
• Instructions3b • End If
• End If
• End If

Syntaxe de l’instruction Select Case… :


• Select Case Variable
• Case Hypothèse_1
• Instructions_1
• Case Hypothèse_2
• Instructions_2
• (…)
• [Case Else
• Instructions_n]
• End Select

Instruction itérative
Deux cas sont à distinguer selon que le nombre de répétitions est connu a priori ou
bien qu’il dépend du contexte.

Le nombre de répétitions est connu a priori :

• For var = val_début To val_fin [step p]


• Instruction n°1
• Instruction n°2
• (…)
• Next var

Le nombre de répétitions dépend du contexte :


Les deux instructions utilisées dans cet ouvrage :
• While Condition • Do
• Instruction n°1 • Instruction n°1
• Instruction n°2 • Instruction n°2
• (…) • (…)
• Wend • Loop Until Condition

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 3 07/08/12 07:05


4 ◆ Applications avec Excel

Les quatre formes de Do…Loop… :

Cond : condition d’arrêt Cond : condition de continuation


• Do • Do
• Instruction n°1 • Instruction n°1
• (…) • (…)
• Loop Until Cond • Loop While Cond
• Do Until Cond • Do While Cond
• Instruction n°1 • Instruction n°1
• (…) • (…)
• Loop • Loop

Opérateurs
Il existe quatre familles d’opérateurs :
• Les opérateurs numériques : +, –, *, /.
^ : élévation à la puissance.
\ : division entière. Exemple : 23\3 donne 7.
Mod : reste de la division entière. Exemple : 23 Mod 3 donne 2.
• Les opérateurs de comparaison : <, <=, >, >=, =, <>.
• Les opérateurs logiques : And, Or, Not, Xor, Eqv.
• L’opérateur de concaténation : &.

Fonctions
Les fonctions effectuent des traitements informatiques et fournissent des résultats.

Syntaxe :

• Function fexemple([ByVal ou ByRef] x As …, …) As …


• Dim … 'déclaration des variables locales
• (…)
• Instruction n°1
• Instruction n°2
• (…)
• fexemple = … 'valeur de retour
• End Function

Exemples d’en-têtes de fonction :


• Function fnum(…, …) As Double : fonction numérique.
• Function fch(…, …) As String : fonction chaînes de caractères.
• Function fbool(…, …) As Boolean : fonction booléenne.

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 4 07/08/12 07:05


Annexe A – Memento VBA ◆ 5

Exemples d’appels de fonction : mettre des parenthèses


• val_res = fnum(a,b)
• ch_res = fch(ch1,x)
• bool_res = fbool(x,5)

Procédures
Les fonctions effectuent des traitements informatiques et agissent directement sur
l’environnement d’exécution, sans fournir de résultat.

Syntaxe :

• Sub proced1() 'sans paramètres


• ou Sub proced2([ByVal ou ByRef] x As …,…) 'avec paramètres
• Dim … 'déclaration des variables locales
• (…)
• Instruction n°1
• Instruction n°2
• (…)
• End Sub

Exemples d’en-têtes de procédure :


• Sub calcul() : sans paramètres.
• Sub etude(x As Integer, y As Integer) : avec deux paramètres.

Exemples d’appels de procédure : ne pas mettre de parenthèses


• Sans paramètre : calcul
• Avec paramètres : etude a, b
Les procédures et les fonctions sont déclarées Public par défaut. Elles peuvent être
déclarées Public ou Private de façon explicite.

ByVal et ByRef
Deux modes de transmission sont possibles lors de l’appel d’une fonction ou d’une
procédure :
• ByVal : le mode de transmission se fait par valeur, la valeur du paramètre d’appel
est transmise par recopie à l’argument correspondant de la fonction ou de la
procédure. Exemple : etude(ByVal x As Integer, ByVal y As Integer).
• ByRef : le mode de transmission se fait par référence, l’adresse du paramètre
d’appel est transmise à l’argument correspondant de la fonction ou de la procédure.
Exemple : etude(ByRef x As Integer, ByRef y As Integer).

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 5 07/08/12 07:05


6 ◆ Applications avec Excel

Par défaut, les arguments des fonctions et des procédures sont déclarés ByRef. Exemple :
etude(x As Integer, y As Integer).

Fonctions prédéfinies
Voici quelques exemples de fonctions prédéfinies du langage VBA :
• Mathématiques : Abs(x), Sqr(x), Cos(x), Sin(x), Tan(x), Exp(x), Log(x), Int(x),
Fix(x), Round(x,nb)…
• Chaînes de caractères : Len(ch) , InStr(ch,ch2) , Mid(ch,d,n) , Mid(ch,d) ,
Left(ch,n), Right(ch,n), Replace(ch,ch1,ch2), Trim(ch), Ltrim(ch), Rtrim(ch),
Lcase(ch), Ucase(ch)…
• Conversion des données : Asc(ch), CInt(ch), CDbl(ch), CLng(ch), Chr(n), CStr(n)…

Nombres aléatoires
Les nombres aléatoires sont calculés de la façon suivante :
• Randomize : réinitialise le processus aléatoire.
• Rnd() : donne un nombre aléatoire décimal tel que 0 <= Rnd() <1.
• Int(b – a + 1) * Rnd() + a) : donne des nombres entiers aléatoires compris
entre a et b, bornes comprises.
Exemple : Int(6 * Rnd() + 1) : donne des nombres entiers compris entre 1 et 6
(tirage d’un dé).

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 6 07/08/12 07:05


B
Les objets Excel

Les applications Excel mettent en jeu de nombreux objets qui sont définis selon un
modèle. Les classeurs, les feuilles de calcul et les cellules peuvent être représentés par
des variables objets. Il en est de même pour les objets de contrôle et les formulaires.
Voici une présentation synthétique de ces variables et de leurs propriétés.

Types, collections et variables objets


Le modèle objet d’Excel est structuré par plusieurs classes. Les classes les plus impor-
tantes sont définies par les types suivants :
• Object : la classe la plus générale.
• Application : l’application Excel elle-même.
• Workbook : la classe des classeurs.
• Worksheet : la classe des feuilles de calcul.
• Range : la classe des plages de cellules.
Le modèle objet comporte aussi plusieurs collections :
• Workbooks : l’ensemble des objets classeurs.
• Worksheets : l’ensemble des objets feuilles de calcul.
• Charts : l’ensemble des objets graphiques.
• Sheets : l’ensemble des objets feuilles de calcul et des objets graphiques.

Exemple de déclaration de variables objets :


• Dim cls As Workbook, fe As Worksheet, plage As Range
• Set cls = Workbooks("Exemple.xls")
• Set fe = cls.Worksheets("Stock")
• Set plage = fe.Range("B1:C5")

ou bien :
• Set plage = Workbooks("Exemple.xls").Worksheets("Stock").Range("B1:C5")

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 1 07/08/12 07:05


2 ◆ Applications avec Excel

Les collections regroupent les objets du type correspondant :


• Workbooks("Exemple.xls") est un objet de la collection Workbooks, de type Workbook.
• Worksheets("Stock") est un objet de la collection Worksheets, de type Worksheet.
• Écriture particulière : Range("B1:C5") définit une collection de cellules, de type
Range.
• Set… affecte à chaque variable l’adresse de l’objet correspondant.
Les déclarations peuvent être allégées s’il n’y a qu’un classeur et qu’une feuille de calcul
dans l’application étudiée. Dans ce cas, on peut écrire : Set plage = Range("B1:C5").

Désignation des cellules


Les cellules peuvent être désignées sans déclaration préalable des variables objets ou
bien avec une déclaration préalable des variables objets.

Sans déclaration des variables objets


• Range("A2") désigne la cellule A2 de la feuille active.
• Range("A2:B5") désigne la plage A2:B5 de la feuille active.
• Range("A2:B5").Cells(i, j) désigne la cellule de la ième ligne et de la jième colonne
relative à la plage A2:B5.
• Range("A2:B5").Cells(1, 1) désigne la cellule A2 car Cells(i, j) commence
à 1, 1.
• Range("A2:B5").Cells(3, 2) désigne la cellule B4.
Lorsqu’il n’y a qu’une seule feuille de calcul :
• Cells(i, j) désigne la cellule de la ième ligne et de la jième colonne de la feuille de
calcul.
• Cells(3, 2) désigne la cellule B3 de la feuille active.
• Cells(i, 2) désigne la cellule de la ième ligne de la deuxième colonne de la feuille
active.

Avec déclaration des variables objets


Premier exemple :
• Dim p as Range déclare la variable p comme une variable de type Range.
• Set p = Range("B2:D8") affecte à la variable p l’adresse de la plage B2:D8.
• p.Cells(i, j) désigne la cellule de la ième ligne et jième colonne relative à la plage
B2:D8.
• p.Cells(1, 1) désigne la cellule B2 car Cells(i, j) commence à 1, 1.
• p.Cells(3, 2) désigne la cellule C4.

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 2 07/08/12 07:05


Annexe B – Les objets Excel ◆ 3

Deuxième exemple :
• Set p = Range("B1:B5") affecte à la variable p l’adresse de la plage B1:B5.
• p.Cells(i) désigne la cellule de la ième ligne relative à la plage B1:B5 (une seule
colonne).

Troisième exemple :
• Dim c as Range déclare la variable c comme une variable de type Range.
• Set c= Range("C3") affecte à la variable c l’adresse de la cellule C3.
• c.Offset(i, j) désigne la cellule obtenue par le déplacement i,j à partir de la
cellule C3.
• c.Offset(0, 0) désigne la cellule C3 car Offset(i, j) commence à 0, 0.
• c.Offset(1, 0) désigne la cellule C4.
• c.Offset(2, 1) désigne la cellule D5.
• c.Offset(–1, 1) désigne la cellule D2.

Valeur d'une cellule


La propriété Value permet de définir la valeur d’une cellule :
• Range("A2").Value donne la valeur de la cellule A2.
• x=Range("A2").Value affecte à x la valeur de la cellule A2.
• p.Cells(i, j).Value donne la valeur d’une cellule relative à la plage p.
• c.Offset(i, j).Value donne la valeur d’une cellule définie à partir de la cellule c.

Lignes et colonnes d’une plage


Les plages de cellules sont structurées par des lignes et des colonnes :
• p.Rows désigne la collection des lignes de la plage p.
• p.Rows.Count donne le nombre de lignes de la plage p.
• p.Columns désigne la collection des colonnes de la plage p.
• p.Columns.Count donne le nombre de colonnes de la plage p.
• p.Count donne le nombre total de cellules de la plage p.

Plage et cellule sélectionnées par l'utilisateur


Toute plage et toute cellule sélectionnée par l’utilisateur au sein de la feuille de calcul
peut être représentée par une variable objet de type Range :
• Set p = Selection : lorsqu’une plage a été sélectionnée, Selection attribue à p
l’adresse de cette plage.
• Set c = ActiveCell : lorsqu’une cellule a été sélectionnée, ActiveCell affecte à c
l’adresse de cette cellule.

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 3 07/08/12 07:05


4 ◆ Applications avec Excel

Actions sur les cellules


Plusieurs actions sont possibles sur les cellules :
• p.ClearContents efface le contenu des cellules de la plage p.
• p.Clear efface le contenu et le formatage des cellules de la plage p.
• c.Interior.Pattern = xlPatternNone efface la couleur de la cellule c.

Couleurs dans les cellules


Deux modalités permettent de colorier des cellules :
• c.Interior.Color = RGB(x, y, z) met une couleur au sein de la cellule c qui
dépend des valeurs de x, y et z.
• c.Interior.ColorIndex = i met la couleur n° i au sein de la cellule c (la couleur
fait partie d’un panel de 56 couleurs).

Objets de contrôle
Les objets de contrôle jouent le rôle d’interface entre l’utilisateur et les applications
Excel. Ils peuvent faire partie d’objets formulaires. Leurs caractéristiques principales
sont les suivantes :
• Types : Label, TextBox, ListBox, ComboBox, CommandButton, CheckBox, OptionButton,
ScrollBar…
• Propriétés : Name, Caption…
• Méthodes : selon les types.
• Événements : Click, DblClick…

Objets formulaires
Les formulaires sont des objets d’interfaces entre l’utilisateur et l’application. Leurs
caractéristiques principales sont les suivantes :
• Types : UserForm
• Propriétés : Name, Caption…
• Méthodes : Show, Hide, Load, Unload…
• Événements : Initialize, Activate, Desactivate, Click, DblClick…

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 4 07/08/12 07:05


C
Création des programmes VBA,
des formulaires et des boutons
de commande

L’éditeur proposé par Microsoft, appelé VBE (Visual Basic Editor), est indispensable
pour éditer et exécuter tous les programmes VBA, et pour créer les formulaire avec
tous leurs composants (boutons, zones de texte…). En revanche, il est possible de
créer des boutons de commande directement sur les feuilles de calcul sans utiliser
l’éditeur VBE.

Paramétrage de l’éditeur VBE


Avant d’éditer le texte du premier programme, il faut créer un accès à l’éditeur, choisir
un niveau de sécurité des programmes et introduire deux options recommandées
pour l’édition.

Création de l’onglet Développeur


L’accès à l’éditeur VBE se fait en créant l’onglet Développeur. Plusieurs actions sont
nécessaires :
1. Cliquer sur l’onglet Fichier.
2. Choisir Options.
3. Choisir Personnaliser le ruban.
4. Dans le cartouche de droite, cocher l’option Développeur, puis cliquer sur OK.
Sélectionner ensuite l’onglet Développeur pour le faire apparaître.

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 1 07/08/12 07:05


2 ◆ Applications avec Excel

Niveaux de sécurité
Il faut ensuite définir le niveau de sécurité des programmes en procédant de la façon
suivante :
• Cliquer sur le bouton « Sécurité des macros » de l’onglet Développeur, puis choisir
le niveau qui convient parmi les quatre niveaux proposés.
• La deuxième option, « Désactiver les macros avec notification », peut être retenue.

Ouverture de l’éditeur VBE


L’accès à la fenêtre de l’éditeur VBE peut être obtenu en sélectionnant l’onglet
Développeur, puis en cliquant sur l’icône « Visual Basic » située à gauche. La frappe
de Alt + F11 aboutit au même résultat.

Options recommandées pour l’édition


Deux options sont recommandées pour faciliter l’édition :
• La première option rend obligatoire la déclaration des variables. L’éditeur VBE
étant ouvert, sélectionner Outils>Options, puis choisir Éditeur et cocher « Décla-
ration des variables obligatoire ».
• La deuxième option permet un meilleur suivi concernant la vérification de la
syntaxe des programmes. L’éditeur VBE étant ouvert, sélectionner Outils>Options,
puis choisir Éditeur et cocher « Vérification automatique de la syntaxe ».

Création d’un programme


L’éditeur VBE étant ouvert, les modalités de création d’un programme sont les
suivantes :

Édition d’un premier programme


Sélectionner Insertion>Module : le Module1 est créé et la fenêtre Module1(Code)
est activée.

Édition d’un nouveau programme


• Au sein du même module : éditer le texte à la suite des autres programmes au sein
du module. Si le texte des programmes déjà enregistrés n’apparaît pas, cliquer sur
Modules>Module1 de la fenêtre VBAProject.
• Au sein d’un nouveau module : sélectionner Insertion>Module. Le module suivant
est créé (Module2, Module3…) et la fenêtre correspondante est activée.

Exécution d’un programme


Pour exécuter un programme, placer le curseur à l’intérieur du texte du programme,
sélectionner Exécution>Exécuter Sub/UserForm ou bien cliquer sur « Macros » de
l’onglet Développeur, puis sélectionner le nom du programme au sein de la fenêtre Macro.

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 2 07/08/12 07:05


Annexe C – Création des programmes VBA, des formulaires et des boutons… ◆ 3

Sauvegarde des programmes


Il est nécessaire de sauvegarder les applications Excel qui contiennent les programmes,
même si ceux-ci n’utilisent pas de feuilles de calcul. Le format à utiliser est « Classeur
Excel (prenant en charge les macros) », qui crée un fichier dont l’extension est .xlsm.

Création d’un formulaire


Pour créer un formulaire, il faut créer l’objet correspondant constitué de tous ses
composants, puis associer à chaque bouton le code des procédures VBA.

Objet formulaire et ses objets contrôles


La création d’un formulaire se fait en effectuant les actions suivantes :
1. Ouvrir l’éditeur VBE puis sélectionner Insertion>UserForm : l’objet formulaire
UserForm1 apparaît.
2. Cliquer du bouton droit sur l’image du formulaire, puis sélectionner « Propriétés » :
donner une nouvelle valeur à la propriété Name (nom de la variable qui désigne
l’objet formulaire), et donner une nouvelle valeur à la propriété Caption (le titre
de l’objet formulaire).
3. Mettre au sein de l’objet formulaire les différents objets contrôles en ouvrant tout
d’abord la Boîte à outils (le Mode Création est activé), puis, pour chaque objet :
a. Sélectionner l’objet à insérer au sein de la Boîte à outils ;
b. Le faire glisser au sein de l’objet formulaire en le positionnant au bon endroit ;
c. Donner éventuellement une nouvelle valeur à la propriété Name (nom de la
variable qui désigne l’objet) et à la propriété Caption de l’objet.

Texte du programme associé à un bouton


À chaque bouton appartenant au formulaire doit être associé le code d’un programme.
Les actions suivantes sont nécessaires :
1. Cliquer du bouton droit sur l’un des boutons insérés au sein de l’objet formulaire,
sélectionner « Code ».
2. Écrire le texte au sein du squelette fourni par la page de l’éditeur associée au
formulaire.

Accès aux propriétés et au code associé


Si des modifications sont à introduire dans la définition du formulaire et des boutons,
il convient de procéder de la façon suivante :
• Formulaire : cliquer du bouton droit sur l’image du formulaire, puis sélectionner
« Propriétés » ou sélectionner « Code ».
• Bouton du formulaire : cliquer du bouton droit sur l’image du bouton, puis sélec-
tionner « Propriétés » ou sélectionner « Code ».

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 3 07/08/12 07:05


4 ◆ Applications avec Excel

Création d’un bouton de commande sur une feuille Excel


Pour créer un bouton de commande sur une feuille Excel, il faut placer l’icône du
bouton sur la feuille, puis donner des valeurs aux propriétés de l’objet et lui associer
le code correspondant.

Création d’un objet bouton


• Pour créer un objet bouton, il faut, sans ouvrir l’éditeur VBE :
1. Cliquer sur l’icône « Insérer des contrôles » située au milieu de l’onglet Développeur.
2. Mettre l’objet bouton sur la feuille Excel après l’avoir sélectionné au sein de la
partie « Contrôles ActiveX ».
• Le Mode Création est automatiquement activé.

Accès aux propriétés et au code associé


Deux modalités sont possibles lorsque le Mode Création est actif :
• Clic sur « Propriétés » de l’onglet Développeur pour accéder aux propriétés de
l’objet bouton, et clic sur « Visualiser le code » de l’onglet Développeur pour
accéder à la page de l’éditeur.
• Cliquer du bouton droit sur l’image du bouton, puis sélectionner « Propriétés » et
cliquer du bouton droit sur l’image du bouton, puis sélectionner « Visualiser le
code ».

Les propriétés de l’objet bouton


Un objet bouton est défini par son nom et son intitulé :
1. Le nom est introduit en donnant une nouvelle valeur à la propriété Name. Exemple :
Btn_Calcul.
2. L’intitulé est introduit en donnant une nouvelle valeur à la propriété Caption.
Exemple : CALCUL.

Le code associé
À chaque bouton doit être associé le code d’une procédure VBA. Il convient d’écrire
le texte au sein du squelette fourni par la page d’édition Feuil1(Code) :
• Sub Btn_Calcul_Click()
• Code à écrire
• End Sub

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 4 07/08/12 07:05


Annexe C – Création des programmes VBA, des formulaires et des boutons… ◆ 5

Exécution de la procédure associée


Pour exécuter le code de la procédure associée, il faut désactiver le Mode Création,
puis cliquer sur l’image du bouton pour lancer l’exécution.

Modifications
Si des modifications sont à introduire dans la définition de l’objet bouton, il convient
de procéder de la façon suivante :
• Réactiver si nécessaire le Mode Création, puis cliquer sur « Propriétés » ou sur
« Visualiser le code » de l’onglet Développeur.
• Ou bien cliquer du bouton droit sur l’image du bouton, puis sélectionner
« Propriétés » ou « Visualiser le code ».

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Livre 7608-VBA.indb 5 07/08/12 07:05

Vous aimerez peut-être aussi