Selection du resultat apres un autofilter en vba

STYLOBLEU

XLDnaute Nouveau
Bonjour à tous,

Je n'arrive pas à récupérer le nombre de lignes renvoyé par la pose d'un filtre en vba.

Je devrais avoir 2 lignes en retour (rows.count) mais à chaque fois excel me renvoi le nb total de ligne soit 8.

Pouvez-vous m'aider ?
je vous mets un exemple de fichier, voir dedans la macro test.

++
Stylobleu
 

Pièces jointes

  • vin.xlsm
    14.4 KB · Affichages: 115
  • vin.xlsm
    14.4 KB · Affichages: 123
  • vin.xlsm
    14.4 KB · Affichages: 120

Pierrot93

XLDnaute Barbatruc
Re : Selection du resultat apres un autofilter en vba

Bonjour,

pas ouvert ton fichier, pas 2007 de dispo, mais regarde peut être ceci si cela peut t'aider :
Code:
On Error Resume Next
MsgBox Range("A1:A50").SpecialCells(xlCellTypeVisible).Rows.Count
"On Error" au cas ou il y ait aucune cellule de visible sur la plage concernée...

bonne fin d'après midi
@+
 

STYLOBLEU

XLDnaute Nouveau
Re : Selection du resultat apres un autofilter en vba

Bonjour toujours sur le même sujet quelqu'un peut me dire pourquoi mon code dans la macro test ne fonctionne pas correctement suite à un filtre de base.

Ca me renvoi toujours 2 lignes de resultat au lieu de 26

Tout est expliqué dans la macro.

merci d'avance pour votre aide

Stylobleu
 

Pièces jointes

  • vin.xlsm
    18.4 KB · Affichages: 110
  • vin.xlsm
    18.4 KB · Affichages: 121
  • vin.xlsm
    18.4 KB · Affichages: 121

STYLOBLEU

XLDnaute Nouveau
Re : Selection du resultat apres un autofilter en vba

Salut pierrot93,

je viens de le convertir en 2003, le résultat est le même pour moi.

Je l'ai zippé car il depassé 50ko
Tu devrais pouvoir le lire cette fois :)


++
Stylobleu
 

Pièces jointes

  • vin.zip
    12.5 KB · Affichages: 83

Pierrot93

XLDnaute Barbatruc
Re : Selection du resultat apres un autofilter en vba

Bonjour,

essaye ceci, à priori, sauf erreur fonctionnel sous 2003...
Code:
Option Explicit
Sub test()
Dim Montab() As Variant, i As Integer, PlageBase As Range, c As Range
With Worksheets("E")
    Set PlageBase = .Range("$A$1:$D$32")
    .AutoFilterMode = False
End With
PlageBase.AutoFilter Field:=3, Criteria1:="2008"
MsgBox PlageBase.Resize(PlageBase.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Count / 4
Set PlageBase = PlageBase.Resize(PlageBase.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible)
ReDim Montab(1 To PlageBase.Count / 4, 1 To 4)
i = 1
For Each c In PlageBase
    Montab(i, c.Column) = c.Value
    i = IIf(c.Column < 4, i, i + 1)
Next c
End Sub

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 836
Membres
104 677
dernier inscrit
soufiane12