Voir le flux RSS

Pierre Fauconnier

Excel, VBA: Compter les lignes d'un tableau structuré

Noter ce billet
par , 18/04/2020 à 18h50 (987 Affichages)
Salut.

Dernièrement sur le forum, un intervenant souhaite compter les lignes d'un tableau structuré*. Il souhaite réaliser cela en VBA pour intégrer la valeur trouvée dans un userform (formulaire VBA).

Je passerai sur les digressions de certains qui n'ont pas encore compris ce qu'est la programmation et qui pensent probablement que c'est une discipline philosophique où tout se vaut, et je passerai également sur la solution pourrie de compter les lignes de la référence structurée

La première réponse qui lui est donnée est Range("Tableau1").Rows.Count
C'est correct... et faux à la fois (donc c'est pourri ). Correct car lorsque le tableau est rempli, c'est-à-dire qu'il y a au moins une ligne avec une cellule remplie dans le tableau, l'utilisation de la "référence structurée" permet effectivement de récupérer le nombre de lignes de données du tableau. La réponse sera cependant fausse lorsque le tableau est vide...

Nom : 2020-04-18_173557.png
Affichages : 157
Taille : 12,7 Ko


En Excel, on arriverait au même résultat avec la formule =LIGNES("Tableau1")
Nom : 2020-04-18_173741.png
Affichages : 150
Taille : 5,4 Ko


Mais, car il y a un MAIS... Si le tableau est vide, que se passe-t-il? Bardaf c'est l'embardée... Tant en VBA qu'en Excel, on a un souci, car la référence structurée contient 1 ligne, alors que le tableau est vide... Pô chouette...

Nom : 2020-04-18_173852.png
Affichages : 156
Taille : 12,2 Ko


Ok, Pierre, tu es bien gentil, mais quoi? On ne sait pas compter le nombre de lignes d'un tableau structuré "à coup sûr"?

Mais si, bien sûr, mais si vous voulez compter en VBA le nombre de lignes d'un tableau structuré, alors, utilisez un tableau structurée (=> ListObject en VBA) et pas une référence structurée... Autrement dit, utilisez les bons outils... Et en Excel, bah, vous n'aurez pas le choix et vous devrez passer par un SI pour tester qu'au moins une cellule est remplie si le tableau ne contient qu'une ligne...

Nom : 2020-04-18_174411.png
Affichages : 157
Taille : 18,5 Ko

Nom : 2020-04-18_174917.png
Affichages : 152
Taille : 17,8 Ko


Pierre, c'est sympa ton truc, mais moi, j'ai l'habitude de prévoir des lignes vides pour mes prochaines saisies, alors tes codes et tes formules, je ne sais pas les utiliser, elles ne me renvoient pas le nombre des lignes remplies (ayant au moins une donnée)...

Nom : 2020-04-18_175426.png
Affichages : 158
Taille : 18,0 Ko


C'est vrai, mais ce n'est pas la faute d'Excel ou de VBA... Comme je le précise à ce chapitre de mon tuto sur les tableaux structurés et tables de données, il ne sert à rien de "prévoir" des lignes vides. C'est une des forces (et une des raisons d'être) du tableau structuré de grandir automatiquement lors de l'ajout de nouvelles lignes...



D'où l'importance de pas répondre "à l'arrache" sur un forum, mais de réfléchir, et d'utiliser les codes qui vont bien et qu'on a pris le temps de tester...

Allez... Bon travail avec Excel et VBA


* Lorsque l'on parle de lignes remplies, on parle communément de lignes non vides et pas, comme un énergumène le laissait supposer dans une discussion, de lignes complètement remplies, c'est-à-dire de lignes dans lesquelles toutes les cellules contiendraient des données. Réinventer des définitions "à sa sauce" pour le plaisir de la polémique n'est en général pas un exercice valorisant pour celui qui s'y livre. Mais si vous souhaitez compter les lignes complètement remplies, c'est par ici

Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Viadeo Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Twitter Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Google Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Facebook Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Digg Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Delicious Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog MySpace Envoyer le billet « Excel, VBA: Compter les lignes d'un tableau structuré » dans le blog Yahoo

Commentaires