Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème pour un décompte simple de lignes non vides dans un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

J'ai rédigé un macro succincte pour compter, dans un tableau, le nombre de lignes non vides.
Pour des raisons techniques, les colonnes du tableau sont fusionnées.
Normalement cela devrait marcher, mais ce n'est point le cas.

Merci pour tout conseil.
 

Pièces jointes

Re : Problème pour un décompte simple de lignes non vides dans un tableau

Bonsoir,
à tester :
Code:
Sub TEST()
Dim plage As Range, lgnpleines As Byte, i As Long
Set plage = [TABLEAU]
For i = 1 To plage.Columns(3).Rows.Count
    If Not IsEmpty(plage.Cells(i, 3)) Then lgnpleines = lgnpleines + 1
Next i
[G4] = lgnpleines
End Sub
A+
 
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Bonsoir à tous


J'obtiens 8 avec le code ci-dessous
Code:
Sub CompteNONVIDES()
MsgBox [TABLEAU].Columns(3).SpecialCells(xlCellTypeConstants, 23).Rows.Count
End Sub

Et pour coller à ton exemple
Code:
Sub CompteNONVIDESII()
[G4] = [TABLEAU].Columns(3).SpecialCells(2, 23).Rows.Count
End Sub
 
Dernière édition:
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Bonjour à tous

Ceci devrait convenir


Code:
Sub TEST()
[G4] = [TABLEAU].Columns(3).SpecialCells(xlCellTypeConstants).Count / 2
End Sub
 
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Bonsoir Fred0o, David84,

Merci pour vos réponses.
J'ai adopté la solution de Fred0o qui marche au poil avec seulement ".Cells" à rajouter.

Bonne soirée à tous.
 
Re : Problème pour un décompte simple de lignes non vides dans un tableau

RE


Bing! Habitude 😉

Pourquoi le / 2?

EDITION: Désolé je viens de comprendre (en testant ton code)
Le Rows.Count est fiable ou pas ?

EDITON2: Effectivement, Habitude, je viens de tester avec une cellule vide, ton code est ok, pas le mien.
 
Dernière édition:
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Re

Je vois que je suis en retard.

@Staple1600
Le rows.count est fiable si les données se suivent.
Si tu met une valeur en D14 et que tu as une cellule vide en D13, ca risque de ne pas fonctionner.


Magic_Doctor, pourquoi ne pas passer par une formule en G4

Code:
=NBVAL(DECALER(TABLEAU;0;2;LIGNES(TABLEAU);1))
 
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Bonsoir Habitude,

Si je n'utilise pas de formule c'est, qu'en fait, l'essentiel des "choses" qui se passent dans la feuille est géré par macros et fonctions. Même si je suis fort loin de bien comprendre toutes les subtilités de VBA, c'est plus clair dans mon esprit et les possibilités sont en général nettement plus étendues que les formules.
 
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Re


@Habitude:
J'ai pas trouvé de moyen plus court (au cas ou le nombre de colonnes augmenterai dans les cellules fusionnées)
Code:
Sub Macro4()
Dim a, b
a = Range(Split([TABLEAU].Columns(3).Address, ":")(1)).Column - 1
b = Range(Split([TABLEAU].Address, ":")(1)).Column
[G4] = [TABLEAU].Columns(3).SpecialCells(xlCellTypeConstants).Count / (b - a)
End Sub


PS: Bonsoir Magic Doctor 😉
 
Re : Problème pour un décompte simple de lignes non vides dans un tableau

Re

@Staple1600

Peut-être comme ceci

Code:
Sub TEST()
With [TABLEAU].Columns(3).SpecialCells(xlCellTypeConstants): [G4] = .Count / .Columns.Count: End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…