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 :

Filtrage par ComboBox dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 11
    Par défaut Filtrage par ComboBox dynamique
    Bonjour à tous

    Je cherche un moyen d'effectuer plusieurs filtres sur des colonnes d'un fichier à l'aide d'une macro excel
    Je voudrais notamment pouvoir effectuer un filtre sur une colonne, laisser à l'utilisateur la possibilité de voir
    les résultats et lui laisser la possibilité d'ajouter un second, troisième... filtres etc
    Du coup je voudrais que mes combobox non utilisées par le premier filtre change et ne mette que les valeurs disponible suite au filtre
    je vous donne un exemple pour faire simple
    on a les colonnes

    NOM VILLE
    Martin Montpellier
    Martin Paris
    José Lille

    On effectue un filtre sur les nom en cherchant toutes les personnes s'appelant Martin grâce a la ComboBox qui permet de
    filtrer les noms on se retrouve avec

    NOM VILLE
    Martin Montpellier
    Martin Paris

    Le soucis c'est que à ce moment ma 2ème ComboBox pour filtrer les villes proposeras Montpellier, Paris ET Lille
    alors que Lille ne fait plus partis des villes disponibles

    Voila le code que j'utilise pour initialiser/update mes ComboBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ComboBoxPart_No.ColumnCount = 1
     Set f = Sheets("EXTRACT_CR")
      Set MonDico = CreateObject("Scripting.Dictionary")
      a = f.Range("A2:A" & f.[A65000].End(xlUp).Row)
      For I = LBound(a) To UBound(a)
        If a(I, 1) <> "" Then MonDico(a(I, 1)) = ""
      Next I
      ComboBoxPart_No.List = MonDico.keys
    Note : Si je fais comme ça c'est pour pas avoir les doublons de mes colonnes

    Je pensais juste changer la 4ème ligne et rajouter ".SpecialCells(xlVisible)" mais ça ne fonctionne que pour les villes du début
    CAD : j'applique mon filtre sur mon tableaux de 5 lignes ça me retire la ligne 3. Si j'update ma ComboBox après le filtre
    en utilisant SpecialsCells(xlVisible) je vais récupérer que les résultat des lignes 1 et 2 mais pas les lignes 4 et 5 pour des raisons qui m'échappe

    Voila désolé pour le paragraphe de 50 lignes mais c'est tellement spécifique que j'ai considéré qu'il fallait que je raconte tout
    Merci a ceux qui prennent le temps de lire/répondre
    Gardez le feux brûlant dans votre cœur

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Angry_Capitalist Voir le message
    Bonjour,

    Le fichier joint n'utilise pas du tout la méthode que vous utilisez. Mais, regardez la colonne Recherche qui concatène les colonnes à filtrer séparées par des caractères blancs et le champ Recherche du Userform.
    Vous allez filtrer la liste en tapant quelques lettres composant les différents mots de la colonne Recherche, séparées par des caractères blancs.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 11
    Par défaut
    Pardon d'avoir un peu abandonné le post comme je travaille que 2 jour par semaine j'oublie un peu de revenir voir sur le site si mon post a évolué
    Mais de toute manière il semble que tout ce que je voulais faire sur ma macro ne sera pas faisable
    Je voulais aussi rajouter un tri alphanumérique que j'ai abandonné, faire ça en VBA sur mon fichier excel faisant 30000 ligne environ faisait que la macro se lancait en 15 min au lieu de se faire instantanément.
    On à décider avec mon chef de projet de partir sur du SSRS (ou SSIS je sais plus) pour retourner directement à l'utilisateur la ligne dont il a besoin du coup je clos le sujet et je vais quand même regarder ton ficher Eric car cela pourra me servir pour des fichiers excel plus petit donc un grand merci a toi

    bise à tous

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Angry_Capitalist Voir le message
    Bonjour,

    Même avec 30 000 enregistrements, la réponse est ultra rapide.

  5. #5
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Pour un fichier avec 15 colonnes de 100 000 lignes (soit 1 500 000 enregistrements), la macro met 40 secondes...
    Il y a probablement de gros problèmes dans les traitements pour mettre 15 minutes avec 30 000 enregistrements

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Ce programme est paramétré:
    -Fltre multi-combobox. Les choix dans les comboboxs se font dans un ordre quelconque.
    -Filtre par recherche intuitive multi-mots multi-colonnes.

    Boisgontier
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 15/03/2006, 10h46
  2. [MySQL] Filtrage par ma requête sql en fonction du résultat d'un combo box
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2006, 17h25
  3. faire un filtrage par date sur base de donnee "delphi
    Par medsoft dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/02/2006, 17h03
  4. Compression par Huffmann dynamique
    Par kael kael dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 01/04/2004, 21h51
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20

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