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 :

Recherche rapide dans une liste


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut Recherche rapide dans une liste
    Bonjour

    je cherche à faire une opération simple à coder avec une macro, mais qui se révèle peu performante et donc désagréable pour l'utilisateur.

    Voilà le problème, simplifié :

    Je dispose d'une blacklist :

    Type 1
    Type 3
    Type 4

    J'ai une table :

    Item 1 Type 1
    Item 2 Type 2
    Item 3 Type 5
    Item 4 Type 4
    Item 5 Type 2
    Item 6 Type 3
    Item 7 Type 2
    Item 8 Type 4

    Je veux obtenir :

    Item 2 Type 2
    Item 3 Type 5
    Item 5 Type 2
    Item 7 Type 2

    D'un point de vue algorithme, c'est élémentaire : Une double boucle for, un if et on n'en parle plus.

    Malheureusement, la blacklist contient des dizaines d'éléments et la liste à trier des centaines. Le temps de calcul augmente vite... surtout que VBA est hyper mauvais pour ça !

    Connaîtriez vous une méthode propre à excel qui me permette d'effectuer cette opération de manière efficace, comme avec un filtre, ou un tableau croisé dynamique ?
    Find me on github

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Idée, qui veau ce qu'elle vaut. (meuh !)

    1)Tu constitues une table avec ta blackliste, que tu tries par ordre croissant
    2)Tu ajoutes une colonne a ta table qui est le résultat de Vlookup dans la blacklist avec exact_macth (regarde l'aide de vlookup), du genre FALSE si pas blacklisté, TRUE si oui.
    3) Tu fais un simple boucle qui sélectionne les lignes avec FALSE.

    Je pense que ça le fait.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

Discussions similaires

  1. [WD14] Recherche indices dans une liste
    Par celine37 dans le forum WinDev
    Réponses: 12
    Dernier message: 09/09/2009, 18h00
  2. Recherche assistée dans une liste
    Par tomy29 dans le forum Struts 1
    Réponses: 34
    Dernier message: 14/11/2008, 11h37
  3. Recherche chaine dans une liste
    Par Clorish dans le forum Général Java
    Réponses: 7
    Dernier message: 28/03/2008, 11h49
  4. Réponses: 7
    Dernier message: 15/02/2006, 11h52
  5. Recherche Element dans une liste
    Par hellodelu dans le forum ASP
    Réponses: 7
    Dernier message: 19/08/2005, 10h56

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