Qu'est-ce qu'un tableau VBA dans Excel et comment en programmer un

VBA fait partie de la suite Microsoft Office depuis de nombreuses années. Bien qu'il ne dispose pas de toutes les fonctionnalités et de la puissance d'une application VB complète, VBA offre aux utilisateurs d' Office la flexibilité d'intégrer les produits Office et d'automatiser le travail que vous y effectuez.

L'un des outils les plus puissants disponibles dans VBA est la possibilité de charger une plage entière de données dans une seule variable appelée tableau. En chargeant les données de cette manière, vous pouvez manipuler ou effectuer des calculs sur cette plage de données de différentes manières.

Qu'est-ce qu'un tableau VBA ? Dans cet article, nous répondrons à cette question et vous montrerons comment en utiliser un dans votre propre script VBA(your own VBA script) .

Qu'est-ce qu'un tableau VBA ?

L'utilisation d'un tableau VBA dans (VBA)Excel est très simple, mais comprendre le concept de tableaux peut être un peu complexe si vous n'en avez jamais utilisé.

Pensez(Think) à un tableau comme une boîte avec des sections à l'intérieur. Un tableau unidimensionnel est une boîte avec une ligne de sections. Un tableau à deux dimensions est une boîte avec deux lignes de sections.

Vous pouvez mettre des données dans chaque section de cette "boîte" dans l'ordre de votre choix.

Au début de votre script VBA , vous devez définir cette "boîte" en définissant votre tableau VBA . Donc, pour créer un tableau pouvant contenir un ensemble de données (un tableau à une dimension), vous devez écrire la ligne suivante.

Dim arrMyArray(1 To 6) As String

Plus tard dans votre programme, vous pouvez placer des données dans n'importe quelle section de ce tableau en référençant la section entre parenthèses.

arrMyArray(1) = "Ryan Dube"

Vous pouvez créer un tableau à deux dimensions en utilisant la ligne suivante.

Dim arrMyArray(1 To 6,1 to 2) As Integer

Le premier chiffre représente la ligne et le second la colonne. Ainsi, le tableau ci-dessus peut contenir une plage de 6 lignes et 2 colonnes.

Vous pouvez charger n'importe quel élément de ce tableau avec des données comme suit.

arrMyArray(1,2) = 3

Cela chargera un 3 dans la cellule B1.

Un tableau peut contenir n'importe quel type de données sous la forme d'une variable régulière, telle que des chaînes, des booléens, des entiers, des flottants, etc.

Le nombre entre parenthèses peut également être une variable. Les programmeurs utilisent couramment une boucle(Loop) For pour compter toutes les sections d'un tableau et charger les cellules de données de la feuille de calcul dans le tableau. Vous verrez comment procéder plus loin dans cet article.

Comment programmer un tableau VBA dans Excel

Jetons un coup d'œil à un programme simple dans lequel vous souhaiterez peut-être charger des informations à partir d'une feuille de calcul dans un tableau multidimensionnel.

À titre d'exemple, examinons une feuille de calcul de vente de produits, dans laquelle vous souhaitez extraire le nom, l'article et la vente totale du représentant commercial de la feuille de calcul.

Notez que dans VBA , lorsque vous référencez des lignes ou des colonnes, vous comptez les lignes et les colonnes(rows and columns) en partant du haut à gauche à 1. Ainsi, la colonne rep est 3, la colonne élément est 4 et la colonne total est 7.

Pour charger ces trois colonnes sur les 11 lignes, vous devrez écrire le script suivant.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Vous remarquerez que pour ignorer la ligne d'en-tête, le numéro de ligne dans le premier regard For doit commencer à 2 plutôt qu'à 1. Cela signifie que vous devez soustraire 1 pour la valeur de la ligne du tableau lorsque vous chargez la valeur de la cellule dans le tableau en utilisant Cells (i, j).Value.

Où insérer votre script de tableau VBA(Your VBA Array Script)

Pour placer programmer un script VBA dans (VBA)Excel , vous devez utiliser l' éditeur VBA . Vous pouvez y accéder en sélectionnant le menu Développeur et en sélectionnant (Developer)Afficher le code(View Code) dans la section Contrôles(Controls) du ruban.

Si vous ne voyez pas le développeur(Developer) dans le menu, vous devrez l'ajouter. Pour ce faire, sélectionnez Fichier(File) et Options pour ouvrir la fenêtre Options Excel.

Modifiez les commandes de choix de la liste déroulante à Toutes les commandes(All Commands) . Sélectionnez Développeur(Developer) dans le menu de gauche et sélectionnez le bouton Ajouter(Add) pour le déplacer vers le volet de droite. Cochez la case pour l'activer et sélectionnez OK pour terminer.

Lorsque la fenêtre de l' éditeur de code(Code Editor) s'ouvre, assurez-vous que la feuille dans laquelle se trouvent vos données est sélectionnée dans le volet de gauche. Sélectionnez Feuille(Worksheet) de calcul dans le menu déroulant de gauche et Activer(Activate) à droite. Cela créera une nouvelle sous-routine appelée Worksheet_Activate ().

Cette fonction s'exécute chaque fois que le fichier de feuille de calcul est ouvert. Collez le code dans le volet de script à l'intérieur de cette sous-routine.

Ce script fonctionnera sur les 12 lignes et chargera le nom du représentant de la colonne 3, l'article de la colonne 4 et la vente totale de la colonne 7.

Une fois les deux boucles For terminées, le tableau à deux dimensions arrMyArray contient toutes les données que vous avez spécifiées à partir de la feuille d'origine.

Manipulation de tableaux dans Excel VBA

Supposons que vous souhaitiez appliquer une taxe de vente de 5 % à tous les prix de vente finaux, puis écrire toutes les données sur une nouvelle feuille.

Vous pouvez le faire en ajoutant une autre boucle For après la première, avec une commande pour écrire les résultats sur une nouvelle feuille.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

Cela « déchargera » l'ensemble du tableau dans Sheet2 , avec une ligne supplémentaire contenant le total multiplié par 5 % pour le montant de la taxe.

La feuille résultante ressemblera à ceci.

Comme vous pouvez le voir, les tableaux VBA dans (VBA)Excel sont extrêmement utiles et aussi polyvalents que n'importe quel autre truc Excel(any other Excel trick)

L'exemple ci-dessus est une utilisation très simple pour un tableau. Vous pouvez créer des tableaux beaucoup plus grands et effectuer un tri, une moyenne ou de nombreuses autres fonctions sur les données que vous y stockez.

Si vous voulez être vraiment créatif, vous pouvez même créer deux tableaux contenant une plage de cellules(containing a range of cells) à partir de deux feuilles différentes et effectuer des calculs entre les éléments de chaque tableau.

Les applications ne sont limitées que par votre imagination.



About the author

Je suis un ingénieur en informatique avec plus de 10 ans d'expérience dans l'industrie du logiciel, plus précisément dans Microsoft Office. J'ai écrit des articles et des tutoriels sur divers sujets liés à Office, y compris des conseils sur la façon d'utiliser ses fonctionnalités plus efficacement, des astuces pour maîtriser les tâches bureautiques courantes, etc. Mes compétences en tant qu'écrivain font également de moi une excellente ressource pour ceux qui souhaitent en savoir plus sur Office ou qui ont simplement besoin de conseils rapides.



Related posts