Cours Visual Basic pour Microsoft Excel, tutoriel & guide de travaux pratiques en pdf.
Déclaration de variables matrices
Une variable matrice est une variable comprenant plusieurs séries d’informations. Elle peut être comparée à un tableau ou à une matrice. Par contre, en Visual Basic tout comme dans tout autre langage de programmation, la variable matrice peut avoir plus que deux dimensions.
Syntaxe
Variables à dimensions définies
Dim Tableau(bi1 to bs1,bi2 to bs2,…, biN to bsN) as Type Private Tableau(bi1 to bs1,bi2 to bs2,…, biN to bsN) as Type
Dim Tableau(n1,n2,…, nN) as Type
Private Tableau(n1,n2,…, nN) as Type
Variables à dimensions indéfinies
Dim Tableau() as Type
Private Tableau() as Type
Légende
- bi1 Î représente l’adresse de la borne inférieure de la 1ère dimension du tableau.
- bs1 Î représente l’adresse de la borne supérieure de la 1ère dimension du tableau.
- n1 Î représente le nombre d’éléments dans la 1ère dimension du tableau.
Remarques
- Les bi1, bs1, n1, etc. doivent être des nombres entiers entrés par le programmeur. Ils ne peuvent représenter le contenu d’une variable.
- Si aucune adresse n’est définie, Visual Basic utilisera celle spécifiée par Option Base. Si la ligne Option Base n’est pas présente et que les adresses des bornes ne sont pas définies, les bornes iront de 0 jusqu’à ni-1
- Si les dimensions d’une variable tableau ne sont pas définies, aucun contenu ne peut y être stocké tant et aussi longtemps que Visual Basic ne connaît pas ses dimensions. Vous pouvez redéfinir les dimensions d’une variable tableau à l’aide de la commande ReDim (voir plus loin).
Exemple # 1
- quoi pourraient servir les adresses des variables matrice ? Disons que vous simulez la performance d’un indice boursier entre 2003 et 2050. Déclarer la variable de cette façon…
Dim IndicesBoursiers(2003 to 2050) as Double
… et obtenir la simulation de l’année 2023…
SimulationVoulue = IndicesBoursiers(2023)
… est beaucoup plus simple que…
Dim IndicesBoursiers(48) as Double
SimulationVoulue = IndicesBoursiers(21)
Exemple # 2
Option Base 1
Sub NomRoutine()
Dim Tableau4dimensions(10, 20, 30, 40) as Integer End Sub est équivalent à
Sub NomRoutine()
Dim Tableau4dimensions(1 to 10, 1 to 20, 1 to 30, 1 to 40) as Integer End Sub
Assigner et obtenir des valeurs d’une variable matrice
L’assignation d’une valeur à un élément d’une matrice se fait à peu près de la même façon qu’avec une variable scalaire (standard). Il faut évidemment spécifier la position dans la matrice où il faut stocker la donnée.
Exemple
Dim TableStandard(1 to 50, 1 to 25) as Double ‘Déclaration de la variable matrice TableStandard(2,3) = 1434 ‘Stocker la valeur 1434 dans la 2e ligne, 3e colonne de la matrice Table standard.
Dim Tableau4dimensions(10, 20, 30, 40) as Integer ‘Déclaration de la variable matrice
Tableau4dimensions(1,1,1,1) = 1536 ‘Stocker la valeur 1536 à la position (1,1,1,1) de la variable matrice.
L’affichage du contenu d’une variable matrice se fait de façon similaire.
Exemple (suite)
Range(« C1 »).Value = TableStandard(2,3) ‘Affiche dans la cellule C1 le contenu de la variable TableStandard à la ligne 2, colonne 3.
Redim
Nous avons mentionné plus tôt que les dimensions d’une variable matrice doivent être spécifiées explicitement (nombres entrés directement par le programmeur) ou pas spécifiées du tout. L’instruction Redim permet de redimensionner une variable matrice. Contrairement à l’instruction Dim, Redim peut accepter le contenu d’une variable.
Syntaxe
ReDim Tableau(bi1 to bs1,bi2 to bs2,…, biN to bsN) as Type ReDim Tableau(n1,n2,…, nN) as Type
Exemple
Dim nbresim as Integer
Dim Simulations() as Double
nbresim = 1000
Redim Simulations(2003 to 2003 + nbresim – 1) as Double
‘car Dim Simulations(2003 to 2003 + nbresim – 1) as Double est illégal
Création de routines et de fonctions personnelles
Il faut tout d’abord faire la distinction entre une routine et une fonction. Premièrement, une routine est un sous-programme qui exécute certaines commandes. Une fonction exécute aussi certaines commandes, mais en plus, retourne une certaine valeur ou tableau de valeurs.
Enregistrer une macro
Il existe plusieurs façons de créer des routines en VBA. L’une d’entre elles utilise la boîte de dialogue « Enregistrer une macro ». Cette méthode a l’avantage de ne nécessiter aucune programmation par l’utilisateur ; celui-ci n’a qu’à démarrer l’enregistrement de la macro, exécuter ce qui doit être emmagasiné dans la macro, et arrêter l’enregistrement. Cette façon de faire est utilisée lorsque la macro consiste en une procédure courante et répétitive que l’on a à faire, et que l’on désire automatiser.
Programmer en Visual Basic pour Excel
Objets propres à Microsoft Excel
Bâtir une macro simple
Gestion des cellules et des plages de cellules : objets et méthodes de base
Range
Columns ou Rows
Selection
ActiveCell
Offset
Cells
Activate
Select
Remarque
Truc pour la manipulation répétitive du même objet
Gestion des feuilles de calculs et des classeurs : objets et méthodes de base
Workbooks
ActiveWorkbook
Worksheets ou Sheets
ActiveSheet
Ouverture d’un classeur Excel – Méthode Open
Création d’un nouveau classeur Excel – Méthode Add
Sélection (ou activation) d’un classeur ou d’une feuille de calcul – Méthodes Activate et Select
Sauvegarde d’un classeur Excel – Méthodes SaveAs et Save
Fermeture d’un classeur Excel – Méthode Close
Déclaration de variables
Rappel provenant des sections précédentes.
Déclaration de variables scalaires
Déclaration de variables matrices
Assigner et obtenir des valeurs d’une variable matrice
Redim
Création de routines et de fonctions personnelles
Enregistrer une macro
Création de routines personnelles
Appel de routines personnelles
Création de fonctions personnelles
Appel de fonctions personnelles
Programmation conditionnelle
Créer une condition
Programmation conditionnelle simple
Programmation conditionnelle par cas
Programmation itérative
Itération simple (For… Next)
Itération conditionnelle (While… Wend)
Gestion des boîtes de dialogue.
Boîte de dialogue InputBox
Boîte de dialogue MsgBox
Une vue d’ensemble de l’éditeur Visual Basic
Trucs de débogage
Commande Exécuter
Exécuter Pas à pas
Points d’arrêt
Fenêtre espions
Messages d’erreurs
Erreurs de compilation
Erreurs d’exécution
Erreurs logiques
Suite de l’exemple – Construction du tableau de primes
Références