Bonjour à tous,
J'ai fait une macro qui filtre des données avec le filtre avancé selon un range donné, et ce, pour permettre à l'utilisateur de voir les données concernées en même temps je compte le nombre de ligne non-vides pour donner le nombre à l'usager.
Le tout fonctionne très bien, mais la valeur minimum qui me retourne c'est 1, donc même s'il n'existe aucune ligne non-vide à part ma ligne de titre de colonne, il me donne 1 au lieu de 0.
J'ai pensé alors de juste soustraire un 1, puisque il s'agirait peut-être de la ligne1 qui contient le titre de colonne, mais ce n'est pas le cas.
J'ai alors pensé à une deuxième solution de conditionner, donc si le chiffre qu'il me retourne c'est 1, il donne 0 à l'usager sinon il donne le chiffre qu'il compte. Cette astuce fonctionne très bien avec tous les chiffres >=1
Mai je me suis rendu compte que, quand il existe une ligne non-vide réellement (à part la ligne 1) il me retourne 0, ce qui évidement faux!
auriez-vous une idée d'où provient cette erreur? Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sheets("Feuil1").Range("A1:BO65536").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=.Range(.Cells(1, 2), .Cells(4, 6)), Unique:=False Nombre = Sheets("Feuil1").Range("A2", Sheets("Feuil1").Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells.Count If Nombre <= 1 Then UserForm1.Label1.Caption = 0 Else: UserForm1.Label1.Caption = Nombre End If
Partager