background preloader

VBA

Facebook Twitter

Cathy Astuce. Conceptualisation des variables tableau en VBA et sous Excel. Optimisation code vba excel. Mon ami, Benoît Sansarray, lors d'une discussion sur le VBA, m'a révélé qu'il ne touchait jamais aux variables tableau, car elles lui paraissaient très compliquées et dès qu'il y pensait il avait un blocage comme si, pour lui, on appuyait sur la touche des neurones : Il a reconnu que c'était bien dommage car il avait déjà copié-collé des morceaux de codes qui s'avéraient bien utiles, mais il n'arrivait pas à les manier ne pouvant se les représenter.

Je lui ai répliqué que ce n'était pas si complexe que ça et lui ai fait un croquis vite fait qui l'a laissé perplexe… Il n'empêche que ça a dû me perturber car cette nuit là, j'ai rêvé que j'étais tranquillement en train de coder sur mon portable assis dans le désert quand Benoît surgissait et me demandait : dessines-moi une touche En premier lieu, nous avons décidé de construire le cadre de notre réflexion.

Le terme Array(s), dans sa signification informatique, est ambigu en lui-même. Voir la Vidéo VIII-A. VIII-B. VIII-B-1. VIII-B-2. VIII-C. Les meilleurs cours et tutoriels pour Excel. Utilisations des tableaux. 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 ... Intérêt des tableaux Imaginez que dans une procédure vous ayez besoin de stocker 500 valeurs. S'il fallait créer 500 variables pour stocker toutes ces valeurs, cela deviendrait très compliqué, tandis qu'avec un tableau, le stockage et l'utilisation de ces valeurs seront grandement simplifiés.

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 ... Rien de tel qu'un exemple pour mieux comprendre ... 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 : Cet exemple sera détaillé en fin de leçon ...

Déclaration d'un tableau. VBA pour Excel - Collections et tableaux. Tableaux On peut concevoir un tableau VBA comme une collection de variables VBA, mais comme les tableaux existaient en Basic bien avant l'introduction de la programmation objet, le traitement des tableaux diffère du traitement des collections. Un tableau VBA doit être déclaré. Le nombre d'éléments d'un tableau peut être fixé lors de la déclaration (nombre fixe d'éléments) ou lors de l'exécution (tableau dynamique). Exemples: Dim tTableau(1 to 15) As Currency '15 éléments de type Currency Dim tTableau(15) As Currency '16 éléments de type Currency Dim tTableau() As Currency ... Redim tTableau(1 to 15) '15 éléments de type Currency Dim tTableau(1 To 5, 1, To 5) As Currency '25 éléments de type Currency La seule façon d'utiliser un élément d'un tableau est d'utiliser son adresse: tTableau(1) 'Le premier élément du tableau tTableau(10) 'Le 10e élément du tableau tTableau(1, 5) 'Le 1er élément de la 5e colonne Un tableau peut avoir plus de 3 dimensions, mais les applications sont rares.

Exemples. Excel - Tableau croisé dynamique. Vous pouvez retranscrire les données ci-dessous dans une feuille de calcul. Vous pouvez aussi vous rendre à la page Web sur les Fichiers de démonstrations et prendre le document demodb.xls. Création d'un tableau croisé dynamique Placez le pointeur sur n'importe quelle cellule entre A1 et G16. Du menu Données, sélectionnez l'option Rapport de tableau croisé dynamique.

Excel vous demande où est située la source des données qui vont servir à composer le tableau croisé dynamique. Ces données peuvent provenir de quatre sources différentes. Excel vous demande ensuite quel type de rapport que vous voulez: tableau ou graphique? Pour les besoins de l'exercice, utilisez les mêmes options que sur le graphique ci-dessus (Base de données Excel et tableau).

Appuyez sur le bouton Suivant. Excel vous demande de confirmer l'endroit où sont situées les données dont vous avez besoin pour le tableau croisé dynamique. Assurez-vous que les cellules sélectionnées soient bien entre A1 et G16. Placer les champs . Utiliser les variables tableaux en VBA Excel. Les variables tableaux servent à stocker et manipuler des groupes de données du même type.

Les éléments du tableau sont indexés séquentiellement. Chaque élément est identifiable par un numéro d'indice. Les modifications apportées à une donnée du tableau n'affectent pas les autres éléments. Créer un tableau de taille X revient en quelque sort à déclarer X variables différentes, en une fois. Un tableau est constitué d'une ou plusieurs dimensions.

Seuls les tableaux dynamiques peuvent modifier leur taille et leur dimension en cours de procédure. Passer par un tableau n'est pas une obligation. Comparez la rapidité d'exécution du code entre: Dim ObjCell As Range For Each ObjCell In Range("A1:J65535").Cells ObjCell.Value = ObjCell.Value * 2 + 3Next et Le deuxième code s'exécute environ 20 fois plus vite. II-A. Un tableau est dit de taille fixe lorsque ses dimensions sont prédéfinies au moment de la déclaration de la variable. La ligne de code suivante montre comment déclarer un tableau fixe. II-B. Present2. Utilisation des fonctions Excel dans VBA. Soit le tableau suivant : Il peut être fort pratique de connaître d'un seul coup d'un seul : la première ligne qui compose le tableau, la dernière cellule, la dernière colonne, etc. Voici quelques "recettes de cuisine".

Tout d'abord, il faut savoir ou le tableau commence. En l'occurence, il commence en C2, pas en A1. Pour sélectionner le tableau, on écrit : ActiveSheet.UsedRange.Select Ce qui aura pour effet de sélectionner C2:E7. Va poser problème. Va sélectionner B2:F20. ActiveSheet.Range("E12").CurrentRegion.Select Sélectionnerait D10:F14. Pour le bien-être de la démonstration, nous allons admettre que notre feuille active ne contient que le tableau décrit au début de la page, ce qui nous permettre d'utiliser UsedRange en toute quiétude. Voici toutes les sélections intéressantes en rapport avec ce tableau : Toutes les sélections commencent avec ActiveSheet.UsedRange, c'est pourquoi je les ai mises en petit.

Sélection de tout le tableau (C2:E7): ActiveSheet.UsedRange.Select. Colorier auto une cellule selon sa valeur | CommentCaMarche. [VBA-E2003] Colorier des cellule sélectionnée.