Traiter des listes efficacement grâce au VBA
Traiter de grandes quantités des données est une tâche presque quotidienne lorsqu’on travaille avec Excel. Lorsqu’on arrive aux limites des fonctions standards d’Excel, un petit code VBA peut bien souvent s’avérer être d’une très grande aide pour effectuer des tâches répétitives de manière rapide et élégante.
Imaginons le scénario suivant : une liste contenant des données est régulièrement téléchargée d’une base de données et importée dans un classeur Excel. On veut maintenant exploiter ces données, mais la longueur de cette liste est variable. Dans ce cas, on peut utiliser le VBA et notamment la boucle For/Next et l’objet Cells pour que la longueur de notre liste soit automatiquement calculée.
Partons donc du code suivant :
Ici, nous avons préalablement défini que la longueur de la liste est de 101 lignes (For Ligne = 2 To 101). Mais, comme expliqué précédemment, notre set de données est sujet à évolution, et la longueur de la liste est donc variable. Il s’agit maintenant de remplacer ce 101 par du code qui nous permettra de calculer et rendre automatiquement la longueur de la liste. Voici comment procéder :
1. Déterminer la dernière ligne de votre liste dès le début de votre code
On définit le début de la liste (le mieux est de définir une cellule de titre, ici « A1 ») et on utilise la propriété END.
La donnée « xlDown » indique la direction dans laquelle la dernière ligne doit être recherchée. Cela fonctionne sur la base de la cellule sélectionnée et dans n’importe quelle direction.
Si vous voulez plutôt extraire le nombre de colonnes que votre liste contient, vous utiliserez le code suivant :
Attention :
Cela ne fonctionne que si la colonne donnée comme point de départ (dans notre exemple, la colonne « A ») ne contient aucune cellule vide. Il est toutefois possible de lancer cette opération à partir de n’importe quelle colonne. Choisissez donc une colonne qui ne contient pas de cellules vides (il est très rare que vous n’ayez à travailler qu’avec des listes dont toutes les colonnes seraient lacunaires).
2. Déterminer la dernière ligne en partant de la fin de votre feuille Excel
Si Rows.Count renvoie un nombre de lignes pour votre feuille de calcul XLSX ou XLSM équivalent à 1048576, c’est que l’intégralité de vos lignes de votre feuille de calcul est comptée, y compris toutes les lignes qui sont vides à la suite de votre liste. Dans ce cas, vous devrez alors chercher la dernière cellule contenant des informations en allant vers le haut. Vous utiliserez une nouvelle fois la propriété END.
« Cells(Rows.Count,1) » définit la dernière cellule de votre feuille de calcul dans la première colonne (colonne « A »).
3. Déterminer la dernière ligne d’un Tableau
Un tableau est en principe considéré dans son ensemble par Excel (et donc également par le VBA). Ainsi, si votre liste est mise en forme en tant que tableau, vous n’avez pas à vous soucier des cellules vides ; ces dernières sont comptées automatiquement si elles font partie du tableau et ne le sont pas si elles se trouvent en dehors du tableau.
Pour cela, donnez un nom à votre tableau auquel vous pourrez alors faire référence en VBA grâce à la propriété « ListObjects ». Cela nous donne le code suivant :
Vous savez maintenant comment calculer automatiquement la longueur de vos listes dont la longueur varie afin de l’intégrer dans votre code VBA. Ainsi, vous pouvez appliquer diverses opérations à vos listes grâce à la boucle For/Next. Dans notre exemple, nous avons simplement demandé de rendre le contenu des cellules de la deuxième colonne de notre liste dans l’espace « Exécution » de l’environnement de développement VBA.
Le VBA permet de devenir plus productif et efficace sur Office, notamment pour automatiser de nombreuses tâches répétitives et manuelles. VBA Fondamentaux Excel – Macros et fonctions VBA sur Excel – Formation avancée
Cette formation de deux jours vous permet d’acquérir les compétences fondamentales de programmation (macro) VBA intégrée dans les applications Microsoft Office.
Grâce à cette formation, découvrez comment enregistrer des macros, apprenez les bases du langage Visual Basic for Applications (VBA) et intégrez des boutons cliquables pour exécuter votre code. La création de modèles permettra le partage de macros avec d’autres utilisateurs.
Ce cours de deux jours est destiné aux utilisateurs et aux développeurs qui souhaitent acquérir des notions plus avancées en VBA afin d’automatiser les tâches et les processus d’Excel.