IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compter le nombres de lignes d'un filtre élaboré [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut Compter le nombres de lignes d'un filtre élaboré
    Bonsoir à tous,

    Pour compter le nombre de lignes résultantes d'un filtre élaboré, j'ai essayé ce code sans rien obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            If Intersect(Range("_FilterDatabase").Cells, _
                         Range("_FilterDatabase").SpecialCells(xlCellTypeVisible)).Address _
                       = "Journée!$A$3:$D$3" Then
                MsgBox ("no results")
            End If
    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    LSteph t'a répondu sur mpfe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Count - 1
    Marque cette discussion comme "Résolue".

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 107
    Par défaut
    Au passage, si tu veux vérifier que deux plages sont les mêmes tu peux utiliser Union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            If Union(ZoneDuFiltre, ZoneEnTete).Address = ZoneEnTete.Address Then
                MsgBox ("Pas de resultat")
            End If
    Testé avec le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test()
     
        Dim WS As Worksheet
        Dim rng As Range
        Dim rng2 As Range
        Dim rng3 As Range
        Set WS = ThisWorkbook.Worksheets("Feuil1")
     
        With WS
            Set rng = .Cells(3, 1) ' Point de depart du filtre
            Set rng2 = .Range(.Cells(rng.Row, rng.Column), .Cells(.Cells(.Rows.Count, rng.Column).End(xlUp).Row, .Cells(rng.Row, .Columns.Count).End(xlToLeft).Column))
            Set rng2 = rng2.CurrentRegion.SpecialCells(xlCellTypeVisible)
            MsgBox rng2.Address
            Set rng3 = rng.Resize(, .Cells(rng.Row, .Columns.Count).End(xlToLeft).Column - rng.Column + 1)
            MsgBox rng3.Address
     
            If Union(rng2, rng3).Address = rng3.Address Then
                MsgBox ("no results")
            End If
     
        End With
     
    End Sub

  4. #4
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonjour Daniel, AlphaScorpi

    Ca n'a pas réussi.

    J'ai essayé avec un critère de filtre élaboré qui à pour résultat 0 lignes, mais la ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            MsgBox "_FilterDataBase Count = " & .Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Count - 1
    Me rend un nombre de 309

    Pour exemple voir PJ.
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Fais le calcul directement dans la feuille Journée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Dim NbLig As Long
        '.............
     
        With Worksheets("Journée")
            NbLig = .Cells(.Rows.Count, "A").End(xlUp).Row - 3
        End With
        MsgBox "_FilterDataBase Count = " & NbLig
     
        'Dans le cas d'une date = 15/07/2012 le nombre de ligne est égal = 0
        If NbLig > 0 Then
            Sheets("Journée").Activate
        Else
            MsgBox "pas de données inscrites pour la journée du " & .[H10]
        End If

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Evaluate("dcounta(A2:E63,B2," & [Criteres].Address & ")")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Outils] Comment compter le nombre de lignes ?
    Par ChristopheOce dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 18/04/2011, 12h36
  2. Réponses: 7
    Dernier message: 03/01/2006, 21h59
  3. Réponses: 2
    Dernier message: 06/11/2005, 23h38
  4. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo