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 :

[VBA-E] Recuperer le nombre de lignes filtrées avec SubTotal


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 38
    Points
    38
    Par défaut [VBA-E] Recuperer le nombre de lignes filtrées avec SubTotal
    Bonjour
    Je galere pas mal pour supprimer des lignes dont la colonne H ne contient pas la Valeur1 ou la Valeur2.
    Option 1 (If...Then...)
    J'avais commencé par un IF ne contient pas THEN supprime la ligne,
    mais le code met trop longtemps pour tester les conditions sur plusieurs dizaines de milliers de lignes.
    Option 2 (Filtre et supprimer lignes masquees)
    J'aimerais alors essayer de filtrer les données des lignes contenant cette fois Valeur1 et valeur2, recuperer leur nombre pour mon historique et controle, et supprimer ensuite ces memes lignes.
    J'ai un souci pour recuperer le nombre de lignes contenant Valeur1 et Valeur2 et le mettre dans une variable. J'utilise SubTotal mais j'aimerais enregistrer les sous totaux dans une variable, et pas les afficher au milieu des lignes...Je ne vois pas comment faire.
    Mon code est comme ca :
    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
       'Filtrer les lignes au statut Annulé et Rejeté
     
            'Appliquer le filtre automatique si desactivé
            Worksheets("Request").Activate
            If Worksheets("Request").AutoFilterMode = False Then
            Worksheets("Request").Range("A6:AO6").AutoFilter
            End If
            MsgBox ("Le filtre automatique est actif")
     
            'Trier les lignes par Statut
            Worksheets("Request").Range("A6:AO6").AutoFilter Field:=10, Criteria1:="Rejetée", Operator:=xlOr, Criteria2:="Annulée"
     
            'Selectionne les lignes filtrées
            Worksheets("Request").Range("A6:AO6").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Subtotal 10, xlCount, 10, True, , xlSummaryBelow
    Je suis pas sure de bien m'y prendre, quelqu'un saurait me dire comment recuperer ces sous totaux dans une variable ?
    D'avance merci beaucoup

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Bon j'ai laissé tomber, c'etait pas la bonne maniere de faire je crois.
    Trop galere de recuperer le dernier sous total (somme des autres sous totaux).

    Je me suis contenté de recupere le nombre d'occurence pour chaque valeur avant d'appliquer le filtre avec Application.CountIf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     'Recuperer le N de la derniere ligne de requests
        Range("A7").Select
        Range(Selection, Selection.End(xlDown)).Select
        DerLigReqVar = Selection.Rows.Count
        DerLigReqVar = DerLigReqVar + 6
     
     'Recuperer le NB de lignes au statut 'Annulée ou 'Rejetée
        Range("J7:J" & DerLigReqVar).Select
        SsTotLigAnnuleeVar = Application.CountIf(Selection, "Annulée")
        MsgBox ("Le nombre de lignes au statut Annulée est de : " & SsTotLigAnnuleeVar)
        SsTotLigRejeteeVar = Application.CountIf(Selection, "Rejetée")
        MsgBox ("Le nombre de lignes au statut Rejetée est de : " & SsTotLigRejeteeVar)
        SsTotLigFiltrVar = SsTotLigAnnuleeVar + SsTotLigRejeteeVar

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

Discussions similaires

  1. [VBA-E] Récupérer le numéro de ligne où se trouve un bouton
    Par Freiya dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/01/2011, 23h06
  2. Réponses: 2
    Dernier message: 02/10/2006, 11h45
  3. [VBA Excel] Copie d'un tableau lignes filtrées comprises
    Par gojira dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/08/2006, 12h53
  4. Réponses: 2
    Dernier message: 09/06/2006, 12h31
  5. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03

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