Formulaire de recherche par élimination avec 4 critères VBA

Bonjour à tous

Je suis nouvelle et novice pour ce qui est de VBA . Mon etude est basé sur un tableau avec

9 pieces (jai leurs diamètre max et min ,leurs longueurs , leurs poids et centrage (voir capture3)). En effet je voudrais

créer un formulaire de recherche ( voir capture2 ) avec ces 4 critéres à prendre

en compte . J'aimerai saisir ces 4 criteres par exp( 1000 pour poids , 500 longueur , 400 diamètre , centré non ) et après avoir cliqué sur "valider recherche" retrouver les pieces qui ont des caractères proches ou similaires dans le userform que j'ai creé ( voir capture 1) . Ainsi J'aurai les pièces trouvées dans la listbox et je pourrais cliquer par la suite sur une pièce pour afficher sa feuille respective sur excel.

J'ai un sommaire globale avec ces 4 caracteristiques des 9 pieces .

Et j'ai 9 autres feuilles , une feuille pour chacune des pieces avec des informations supplementaires .

Je ne sais pas comment faire pour prendre en compte des intervalles de recherche genre si je mets une longueur de 1150 ( sachant qu'il n'y a pas une longueur specifiquement de 1150 ) j'aimerais avoir les pieces avec une longueur proche de 1150 , de meme pour les autres critères.

Ainsi j'aimerai que vous m'aiguiller sur les codes à utiliser pour ecrire le programme .

Merci pour le temps que vous aurez accordé à lire mon problème . J'espere que j'ai bien expliquée .

Feel free to ask me anything you dont understand on my post .

capture2 capture3 capture1

Bonjour et bienvenue sur le forum

"Proche" ne veut rien dire, dans le langage Excel. En revanche, si à tes critères de recherche tu associes une fouchette, comme par exemple plus ou moins 10%, là, ton problème sera soluble.

Exemple : si tu veux chercher une valeur proche de 1150 à 10% près, Excel saura chercher toutes les valeurs dans l'intervalle 1035 - 1265

OK ?

Bye !

Merci d'avoir répondu . J'aimerai savoir quelle fonction permet d'effectuer cette recherche avec une telle fourchette ?

Il n'y a pas de fonction particulière qui fasse ce que tu demandes. Mais on peut essayer avec des fonctions imbriquées ou créer une fonction personnalisée.

Mais ce n'est pas avec les copies d'écran que tu as jointes que je vais m'y risquer.

Bye !

Si ca ne vous derange pas est ce que vous pourriez me guider à faire ce cas de figure , en utilisant des fonctions ou du VBA parce que je n'arrive pas à démarrer avec le vba . C'est un cas de figure que j'ai créer pour m'exercer pour mon controle que je dois passer dans

quelques temps.J'ai juste besoin de quelqu'un qui me guide pour le début aprés j'essayerais de me débrouiller.

Le cas de figure reste le meme remplir le champ des 4 critères et trouver une ou des pieces correspondantes .

Merci pour le temps consacré à me répondre .

Je vous joint le fichier excel

18fichier.xlsm (47.86 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

25fichier-v1.xlsm (35.64 Ko)

Merci beaucoup d'avoir consacrer votre temps à mon problème .

Une dernière petite question est ce qu'il est possible de réduire

la fenêtre de recherche ( userform ) après avoir sélectionner ma pièce,

pour pas avoir à la déplacer pour visualiser la feuille. Aussi est ce qu'il est possible

de taper sois même des valeurs sans avoir à choisir dans la

liste déroulante .

Merci encore pour votre aide .

Nouvelle version.

Bye !

23fichier-v2.xlsm (40.36 Ko)

Merci beaucoup , je viens de voir le fichier. En fait vous avez pris en compte l'intervalle

des diamètres de chaque pièce en excluant le diamètre max ce qui fait que les valeurs max ne sont

pas comprises dans la recherche . De plus pour les longueurs et poids , il s'agit des

poids et longueurs maxi , peut être que je me suis mal exprimée au début . Donc ce qui fait

que toutes les valeurs inférieures peuvent être utiliser . Mais là avec le userform

je dois saisir les valeurs exactes ( poids et longueur )pour trouver des pièces . Hors je veux une plus

large possibilité .En somme ce sont des intervalles pour tous les 3 critères ( diamètre longueur poids ) ,

sauf que pour le poids et la longueur toutes les valeurs min sont de 0.

Je vous remercie encore pour le temps que vous m'avez consacré.S'il vous reste du temps juste pour

changer ça je vous en serais reconnaissante :s. Encore merci

Bonjour

peut être que je me suis mal exprimée au début .

Je crois que c'est moi qui ne comprends pas.

Donne moi deux ou trois exemples de ce que tu saisies et de ce que tu veux obtenir….

Bye !

Salut Je vais m'expliquer avec un nouveau cas de figure qui permet de cerner ce que j'aimerais avoir .

Je maintiens toujours ces 4 critères : j'ai joinds un nouveau tableau Excel.

Diamètre ( une valeur mini et une maxi )

Longueur ( une mini une maxi)

Poids (une mini une maxi)

Centrage (Oui ou Non)

Je voudrais que par exp

Exemple 1 : Si je tape Diamètre (400) qu'il prenne en compte toutes les pièces avec

un intervalle contenant 400 ici toutes les pièces sauf la pièce8

Longueur (1150) qu'il prenne en compte toutes les valeurs

un intervalle contenant 1150 ici pièce1 ; pièce4 ; pièce5 ; pièce7 ; pièce8

Poids (4000) qu'il prenne en compte toutes les pièces avec un

intervalle contenant 4000 ici pièce1 et pièce2

Centrés: (Oui) qu'il prenne toutes les pièces centrés

Enfin si on prend en compte tous ces critères et leurs solutions , on procède par élimination

on regarde toutes les pièces qui regroupent ces 4 critères et là on a comme solution : La pièce 1 et la pièce2

Parcequ'elles regroupent tous les 4critères .

Je ne sais pas si c'est claire à présent ?

Je dois être une piche ou une bourougne car je ne comprends pas que tu trouves 2 pièces dans ton exemple.

Pour moi, ou plutôt pour la macro (mais elle est à ma botte) il n'y a que la pièce 1 à retenir.

Nouvelle version.

A noter l dans ton tableau de "Données", si tu fais tenir les mots "max" et "min" aux valeurs qui suivent, les résultats seront faux :il faut écrire "min 30" ou "min 30" et non pas "min30".

Bye !

11fichier-v3.xlsm (38.25 Ko)

Bonjour j'ai essayé de faire un autre exercice en m'inspirant de ce que vous avez fait

J'ai la meme chose sauf que au lieu d'avoir que 9 pièces j'en ai une cinquentaine

Mais je bloque au niveau du Userform_initialize() . D'aprés moi ( mais je ne suis pas sure ) pour tablo ca reste le

meme on a --> tablo = fd.Range("B3:F" & fd.Range("B" & Rows.Count).End(xlUp).Row) vu que ce sont

les memes critères la largeur du tableau ne change pas mais la longueur ci vu que j'ai 50 pieces.

Mais à partir de redim tabloI je ne comprends plus qu'est ce qu'il faut faire.

Et j'aimerais aussi savoir comment etes vous parvenus à ce qu'on puisse cliquer sur un resultat et afficher la feuille.

Vous l'avez fait au niveau des codes ou autrement ?

Merci

Bonjour

Joins ton nouveau fichier et je regarderai ça ce soir.

Bye !

Merci je vous joint le fichier

11exemple2.xlsx (28.75 Ko)

Fichier en retour avec remarques .

Bye !

21exemple2-v1.xlsm (32.57 Ko)

Bonjour lorsque je télécharge le fichier je me retrouve avec un fichier sans macro ni rien ! Je ne sais pas

si le problème viens de moi . Pouvez vous me le renvoyer svp Merci

Bonjour

lorsque je télécharge le fichier je me retrouve avec un fichier sans macro ni rien !

Il n'y a pas de macro. Elle ne pourrait pas marcher. Juste quelques explications pour expliquer pourquoi.

Bye !

12exemple2-v2.xlsx (35.29 Ko)

Ah d'accord! Est ce que je peux mettre une colonne maxi et une colonne mini au lieu de les mettre dans la même colonne , ce cas serait il plus simple pour la programmation ?

En effet, ce serait plus simple.

Bye !

Rechercher des sujets similaires à "formulaire recherche elimination criteres vba"