par , 18/04/2020 à 18h15 (2526 Affichages)
Salut.
Dans un précédent billet, je vous montrais comment compter les lignes d'un tableau structuré, en évitant le piège du tableau vide. J'évoquais la possibilité de devoir compter les lignes entièrement remplies du tableau structuré ou de la table de données. Ce besoin pourrait d'ailleurs survenir en Excel.
Pour résoudre ce cas, je ne vois pas d'autre solution que d'itérer sur les lignes de la table de données, et de comparer le nombre de cellules remplies par rapport au nombre de colonnes du tableau. A nouveau, passer par le ListObject va permettre de s'en tirer en trois lignes de code, ligne de déclaration exclue.
1 2 3 4 5 6 7
| Function Table_CountOfFullRows(TableName As String) As Long
Dim lr As ListRow
For Each lr In Range(TableName).ListObject.ListRows
Table_CountOfFullRows = Table_CountOfFullRows - (Application.CountA(lr.Range) = lr.Range.Columns.Count)
Next
End Function |
Ok. Et en Excel? Eh bien, en Excel, je n'ai pas de solution en une seule formule. Si solution il y avait, elle passerait obligatoirement par une matricielle, sorte de formule qui boucle sur les lignes d'un tableau structuré, mais les fonctions d'Excel permettant de dénombrer ne permettent pas de solution formulée. Il faudra passer par l'utilisation de la fonction VBA.

En Excel, il y a bien une solution consistant en l'ajout d'une colonne à droite pour compter les valeurs remplies sur la ligne (or la colonne de comptage), mais cette formule pose problème en cas d'ajout ou de permutation de colonnes...


C'est là qu'on remarque certaines (petites) lacunes au niveau des tableaux structurés d'Excel. Cela dit, depuis que je les utilise, et ça commence à faire un paquet d'années, je n'ai jamais été bloqué par ces faiblesses...
Bon travail avec Excel