Compter le nombre de ligne visible apres un filtre
Bonjour à tous je débute dans le codage en VBA, je m'entraine sur un fichier pro et je suis bloqué sur un bout de code
j'aimerais après un filtre coller le nombre de lignes restant après un filtre en vba . quand j'effectue ce code il me colle 1 alors que sur la feuille "suivie de dossiers" il y a 44 lignes restantes après le filtre si vous avez des idées je suis preneur
merci de votre aide et de votre temps
voici mon code :
Sub STATS()
Dim ws As Worksheet
Dim wsuivi As Worksheet
Dim strPath As String
Set ws = Worksheets("STATS 2022")
Set wsuivi = Worksheets("Suivi de dossiers")
wsuivi.Range("C6:C" & Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:="2022"
wsuivi.Range("C6:F" & Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=6, Criteria1:="1"
Dim rowCount As Long
rowCount = wsuivi.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Rows.Count
ws.Range("G6").Value = rowCount
End SubEdit modo : merci de mettre le code entre balises SVP avec le bouton </>
Bonjour Gonsan77 et
Une petite présentation ICI serait la bienvenue
Ensuite je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
Je modifie votre post cette fois, mais attention les prochaines fois SVP
Merci pour votre participation
A+
Re,
Sinon, peut-être comme ceci
Sub STATS()
Dim ws As Worksheet
Set ws = Worksheets("STATS 2022")
With Worksheets("Suivi de dossiers")
.Range("C6:C" & .Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:="2022"
.Range("C6:F" & .Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=6, Criteria1:="1"
.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
End With
ws.Range("G6").PasteSpecial xlPasteValues
ws.Range("G6").PasteSpecial xlPasteFormats
End SubA+
Bonjour Gonsan77, BrunoM45,
Dans le cas d'un filtrage, il n'y a pas besoin de se référer à Autofilter pour compter le nombre de cellules filtrées (donc visibles).
Ni de lui préciser que ceux sont des lignes (Row) à compter
Car le xlCellsTypeVisibles est justement inhérent à Autofilter.
[G6] = wsuivi.Range("C6:C" & Range("C" & Rows.count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).CountEt de toute façon, il ne copiera, de base, que les lignes filtrées.