Changement de Range dans une recherche + critère

Bonjour à tous,

J'utilise actuellement une méthode de recherche afin de retrouver des informations basée sur un formulaire de recherche.

Voici le bout de code que j'utilise:

Sheets("Bilan").Range("Bilan_Catalogue").AdvancedFilter Action:=xlFilterCopy, _

False

Bilan étant ma worksheet où se trouve la base de donnée

Bilan Catalogue étant le range où se trouve mes données (A1 to AB1118)

Rechercher_Famille_Critère étant le range où sont mes critères de recherches (dans une autre sheet AB1 to AC2)

Détails_Résultat étant l'endroit où mon résultat de recherche est affiché.

Tout fonctionne parfaitement.

Ce que j'aimerais pouvoir faire est d'en fonction d'un mot dans une cellule de mon formulaire de recherche, changer la plage où la recherche sera faite. En d'autre termes, remplacer le "Bilan_Catalogue" par une variable pouvant diriger vers une autre plage

Ex:

Sheets("Bilan").Range("xxxyyy").AdvancedFilter Action:=xlFilterCopy, _

False

Si en A1 le mot Electrique est entré, "xxxyyy" = Range("Bilan_Catalogue_Electrique") qui renverrai vers un range du même nom mais toujours dans l'onglet "Bilan"

Voilà j'espère avoir été assez claire :-/

Je joins un fichier avec des exemples fictifs.

En gros, si dans mon fichier pour le critère Pays, je choisis "Argentine", je voudrais que ma recherche se fasse dans le range "Bilan_Catalogue_Asud".

Si je choisis "Pekin" ou "Tokyo" que la recherche se fasse dans le range "Bilan_Catalogue_Asie"

D'avance un grand merci à vous

Bàv

Kwld

4exemple.xlsm (21.90 Ko)
4exemple.xlsm (21.90 Ko)

Bonjour,

Tu as une base générale, c'est ce qui convient le mieux ! Je ne vois aucun intérêt à éclater ça !

Un conseil : supprimer les duplications parcellisées, ton classeur ne s'en portera que mieux !

Cordialement.


Bonjour,

Mon souci est que ma base générale est beaucoup plus étoffée et je dois pouvoir faire la distinction entre appareils éléctriques, diesel, bi-énergie, etc...

D'ou ma question.

C'est sure que ce que j'ai posé ici fonctionne parfaitement.

En même temps, pour d'autres utilisations, j'aimerais comprendre la logic derrière ==> Cad: avoir une variable qui change en fonction d'un ou plusieurs critères.

Que veux-tu dire par "duplications parcelisées"?

Merci à toi,

Kwld

Ta base est dupliquée, et ces duplications forment quantité de bases en double. Alors qu'une seule suffit, tu peux en augmenter le nombre de champs, si tu as d'autres infos, augmenter le nombre de critères de filtrage, tout cela ne pose pas problème ! Mais dupliquer systématiquement n'est pas la bonne stratégie, tu pourras que compliquer la recherche et la rendre plus lente ! Et il te faudra en outre créer une table de correspondances... Tout cela est bien inutile !

Quant à la logique d'une variable, c'est que tu modifie sa valeur en fonction des besoins... C'est une opération des plus courantes, qui te permet un code plus souple, et parfois raccourci...

Cordialement.

Bonjour,

En effet tu as raison! Finalement, Ta réponse m'a rediriger vers d'autres solutions plus simple.

Je voulais pouvoir faire plusieurs dropdown listes interdépendantes les unes des autres.

J'ai simplement concatener les mots avec une fonction indirect() et mon problème a été résolu.

Si je sélectionnait par exemple: USA, New York ==> j'ai le prénom de toutes les personnes vivant à New York

Alors qu'avant avec ma méthode, j'aurais eu le nom de toutes les personnes vivant aux USA

Bref

Merci à toi,

kwld

Rechercher des sujets similaires à "changement range recherche critere"