Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Les tableaux sont des "variables" qui permettent de stocker une multitude de valeurs. Nous avons effleuré
le sujet à la leçon sur les variables, nous allons maintenant l'approfondir ...
Le second intérêt des tableaux est leur "rapidité". Parcourir un tableau de données demande beaucoup moins de temps que parcourir un "tableau" (composé de
cellules) sur une feuille Excel ...
Sur la première feuille ("BD") : une base de données de 5000 lignes sur 3 colonnes :
Sur la seconde feuille : un "tableau" récapitulatif où seront comptabilisés les "OUI" en fonction des années et des clients :
Dans le cas présent, la procédure va parcourir la base de données en boucle et comptabilisera pour chaque année et chaque n° de client le nombre de "OUI"
avant de l'entrer dans la cellule correspondante.
Sans utiliser de tableau, il faudra 131.44 secondes à Excel pour exécuter la procédure :
En enregistrant d'abord la base de données (de la feuille "BD") dans un tableau et en effectuant ensuite les mêmes calculs (en utilisant le tableau à la place de la
base de données de la feuille "BD"), il ne faudra que 1.74 secondes pour exécuter la procédure :
Et si l'on décide d'optimiser la procédure en n'enregistrant que les données avec les "OUI" dans le tableau (ce qui représente environ le 3/4 des données), 1.02
secondes suffisent :
Dans cet exemple, l'utilisation d'un tableau a permis d'exécuter la procédure environ 128x plus rapidement et cette différence peut encore augmenter
sensiblement lorsque l'on travaille avec plusieurs bases de données en même temps (voir un second exemple).
Si vous ne pouvez pas entrer de valeurs fixes (parce que cela dépend de la taille de la base de données par exemple), laissez les parenthèses vides.
Vous n'avez pas besoin de déclarer un type (string, long, etc.), dans bien des cas cela ralentirait votre procédure ...
Nous voulons enregistrer ici 11 x 1 valeurs, il faudra donc créer un tableau à une dimension :
'Déclaration
Dim tab_exemple(10)
Rappelez-vous que la numérotation d'un tableau commence à 0 (c'est une norme en programmation, autant prendre de bonnes habitudes dès le début même
s'il est possible de modifier cela en VBA).
Vous pouvez utiliser, modifier chaque élément du tableau comme une variable.
Sub enreg_tab()
'Déclaration
Dim tab_exemple(10)
'Test 1
MsgBox tab_exemple(8) '=> renvoie : 04.02.2016
'Test 2
MsgBox tab_exemple(8) '=> renvoie : 2016
End Sub
Pour enregistrer ce même tableau plus rapidement, une boucle For est toute indiquée :
'Déclaration
Dim tab_exemple(10)