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 :

macro VBA Compte lignes après filtres ? [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut macro VBA Compte lignes après filtres ?
    Bonjour,

    J'ai commencé à faire des macros dans le cadre du travail depuis peu de temps et j'ai l'impression d'être dans une impasse.

    J'ai un tableau qui répertorie des personnes ayant assisté à des conférences et qui listent des critères en fonction de différents paramètres.

    A partir de ce tableau, je dois extraire des données afin de savoir le nombre de personnes (donc nombre de lignes) en fonction de deux paramètres renseignés en colonnes J et M, puis J et L (puis d'autres mais on s'en fiche un peu une fois que je sais faire pour un je saurai faire pour d'autres).

    J'ai donc essayé pas mal de choses...

    Notamment :
    * Tout d'abord le CountIf qui m'a paru al solution idéale. Malheureusement je ne peux mettre qu'une condition ce qui le rend inutilisable.
    * Appliquer des filtres et compter les lignes mais ça compte les lignes cachées...
    * La fonction SOUS.Total(3,range) que je n'ai pas réussi à utiliser dans la macro...

    Pour finalement en arriver à une solution qui a peut être une chance de marcher mais qui semble beaucoup trop longue vu la taille des tableaux qui serait :
    Faire une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i to (nombre de ligne du tableau qui peut aller jusqu'à 1000 facilement)
    If Jx = AAA and Mx = BBB Then
    compteur=compteur+1
    Else
    End If
    Next
    et ensuite récupérer la valeur finale de x.

    Sachant que dans mon tableau j'ai environ 100 cases à remplir je vous laisse imaginer le temps que vont prendre ces boucles...

    Si vous aviez une façon plus efficace je suis vraiment preneur.
    Si vous avez besoin de plus d'informations n'hésitez surtout pas.

    Merci beaucoup.
    Joss

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par JGousseau Voir le message
    J'ai donc essayé pas mal de choses...

    Notamment :
    * Tout d'abord le CountIf qui m'a paru al solution idéale. Malheureusement je ne peux mettre qu'une condition ce qui le rend inutilisable.

    Bonjour,

    pourquoi ne pas utiliser CountIfs (NB.SI.ENS) vu que tu es sur Excel 2013

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Bonne question. Je ne connaissais pas le ifs... j'avais essayé de mettre plusieurs condition dans le countIf ou de mettre un AND dedans mais sans succès. Je n'ai pas VBA à mon domicile pour essayer mais ça semble en effet la bonne solution J'essaie ça dès demain.

    Merci pour ton aide en tout cas.

    Juste pour être sûr sur l'utilisation ça peut s'écrire du
    CountIfs(range("J:J";conditionA;range"M:M";conditionB) (ouais, ce n'est que ma deuxième macro et je n'ai pas encore toute la logique de programmation bien en tête.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Si ce n'est pas déjà, je te conseille de convertir ton tableau en "tableau structuré", c'est très pratique pour manipuler ton tableau


    voici une proposition faite toute à l'heure sur un autre sujet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub ttr()
        With Worksheets("LaFeuille").ListObjects("Tableau1")
            MsgBox Application.WorksheetFunction.CountIfs(.ListColumns("X").DataBodyRange, "2", .ListColumns("Y").DataBodyRange, "TEST")
        End With
    End Sub
    Sur la feuille "LaFeuille", on compte le nombre d'éléments du tableau "Tableau1" pour lesquels la colonne portant le nom "X" contient 2 et la colonne portant le nom "Y" contient "TEST"

    La syntaxe de la formule est : NB.SI.ENS(Plage1; Critère1;Plage2;Critère2....)
    ici pour le tutoriel du tableau structuré : http://silkyroad.developpez.com/excel/tableau/

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

Discussions similaires

  1. Aide pour Macro VBA copie lignes entre 2 classeur
    Par magicsismic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/03/2015, 21h13
  2. Sélection de lignes après FILTRE
    Par ptitbow dans le forum Excel
    Réponses: 3
    Dernier message: 24/02/2015, 14h40
  3. VBA Selection ligne après la dernière cellule
    Par Vanene dans le forum Général VBA
    Réponses: 2
    Dernier message: 29/06/2013, 19h36
  4. Réponses: 2
    Dernier message: 13/09/2012, 13h39
  5. [XL-2007] Trouver la dernière ligne après filtre et coller une selection
    Par Systémicien dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/03/2011, 08h19

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