Formule selon resultats du filtre avance

pochoco

XLDnaute Nouveau
Bonjour a tous,

Je tiens tout d'abord a remercier ce formidable forum qui m'a deja permis (Jusque la sans vous embeter) d'avancer sur un projet de stage tres loin de mes competences. Je m'excuse d'avance pour les fautes (j'ecris avec un clavier qwerty). Je suis desormais bloquee et je n'arrive pas a trouver un probleme semblable dans l'historique du forum (J'espere expliquer assez clairement mon probleme);

Je dois faire une application avec un UserForm (deja bien avance), qui fonctionne essentiellement sur des filtre avances selon les reponses cochees. Il arrive un moment ou l'utilisateur doit choisir dans des echelles de valeurs (par exemple, <10Kg; [10;20]Kg;[20;40]Kg;>40Kg), grace a des CheckBox dans mon UserForm. Or ce choix permet d'affiner le plus possible la recherche, mais n'est pas exclusif (Par exemple, si on peut porter un poids entre 20 et 40 kg, on peut porter un poids de 10kg, mais cocher [20;40] permet de selectionner seulement les produits qui se rapprochent le plus de ce critere).

Mon probleme intervient ici: si je fais un filtre avance, mais que les resultats sont vides, il faudrait appliquer automatiquement le filtre avance de la categorie suivante:
If CheckBox1.Value=True, then,
If (Attention je ne sais pas l'ecrire en VBA ) Filtre 1 = aucun resultat, Then appliquer le deuxieme filtre,
Else, Appliquer le premier filtre
End if
End if

1- Est-ce deja possible? Si oui, pouvez vous m'aider sur ce code?
2- Avez-vous eventuellement une idee moins compliquee a laquelle je n'ai pas pensee?

Je vous mets un fichier (un peu vague je l'avoue, mais assez clair je l'espere) expliquant ce que je souhaite faire, mais si vous avez besoin de mon outil complet a ce stade, cela risque d'etre plus complique car il est completement confidentiel...


Je vous remercie beaucoup,

Pochoco
 

Pièces jointes

  • Question forum - Payload.xlsx
    17.3 KB · Affichages: 26

Modeste

XLDnaute Barbatruc
Re : Formule selon resultats du filtre avance

Bonjour pochoco et bienvenue,

Tant mieux si tu as déjà trouvé des choses intéressantes sur le forum! :)

Pour ce qui est de ta question, ça me semble compliqué d'y répondre clairement:
- on ne sait pas comment on pourrait "articuler" une proposition autour ce que tu as déjà fait de ton côté, sans en avoir le moindre aperçu!
- comme on le dit souvent, on n'a pas besoin de ton vrai fichier: des noms "bidons" peuvent remplacer les vrais et toutes les lignes ou colonnes ne sont certainement pas indispensables. Par contre, comment sont inscrits les poids dans les cellules?? Comment rédiger les critères d'un filtre avancé, dans la situation que tu décris?? On ne peut s'en forger la moindre idée!

Une piste, peut-être serait de faire x=Application.CountIf(ta_colonne_des_poids, "<20") ce qui permettrait de savoir si des poids de moins de 20 kg sont renseignés ... ou pas (en admettant que les valeurs de cette colonne soient numériques :confused:)

Tu pourrais peut-être aussi simplement trier le tableau par ordre croissant de poids (sans nécessairement filtrer), puisque tu veux voir les poids supérieurs, si les bornes données ne fournissent pas de résultats?

Ceci dit et pour être complet, je ne suis pas certain de pouvoir t'aider, mais d'autres peut-être (si tu leur donnes un peu plus de grain à moudre :D)

[Edit:] dans les deux pistes évoquées, dans mon esprit, une première extraction a eu lieu (sinon le tri ou le NB.SI n'ont guère d'intérêt)
 
Dernière édition:

pochoco

XLDnaute Nouveau
Re : Formule selon resultats du filtre avance

Bonjour,

Merci beaucoup pour ta reponse Modeste :)
- Trier le tableau ne m'irait pas, car l'idee est que l'utilisateur ne se servira que des userform et n'aura pas acces directement a la base de donnees (je la conserve pour le moment car c'est une version d'essai et que cela me permet de voir comment mes formules fonctionnent).
- Essayer avec le countIf pourrait etre une solution sympas. Je ne suis pas du tout familiere avec X Application (donc ca risque de prendre une peu de temps). Des que j'ai travaille dessus je vous laisse un commentaire

- En attendant, j'ai essaye de vous faire un fichier special, mais meme apres moultes reductions (le minimum que je puisse faire pour que vous compreniez d'ou viennent les donnees et ou je veux qu'elles aillent, est 4 pages avec 1 user form contenant quelques macro), le fichier est encore largement trop gros (Meme compresse). Y a-t-il un autre moyen de vous faire parvenir le fichier? Voici donc un exemple de code. pour le moment, il s'agit d'un filtre avance tout simple et sans echelle, uniquement le critere >=3 (Range F1:F2) que je voudrais remplacer par un code permettant ce que j'explique au-dessus. :

Private Sub CheckBox9_Click()
' Macroreach Macro
' With an advanced filter, copy/paste the results in the sheets "reach"
'
Sheets("Payload").Select
Columns("A:B").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"$F$1:$F$2"), CopyToRange:=Range("I1:J1"), Unique:=False
Columns("I:I").Select
Selection.Copy
Sheets("Reach").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C1").Select
End Sub
 

Modeste

XLDnaute Barbatruc
Re : Formule selon resultats du filtre avance

Bonsoir,

Ce doit être l'âge ... mais j'ai décidément du mal à comprendre en quoi créer un fichier exemple est compliqué. En voici donc un (mais ce sera le seul, venant de moi!)

Précision importante: le code joint n'est nullement abouti, ni finalisé (loin s'en faut ... et c'est un euphémisme! :p). Il n'a d'autre but que d'illustrer l'utilisation de CountIf qui n'a rien de ténébreux (sinon, je me garderais bien de l'utiliser!) et une technique possible (mais peut-être pas extensible :confused: ce sera à voir): le passage du statut de la première CheckBox (et celle-là seulement!) du statut de Enabled à Disabled ... et vice-versa. Je ne suis pas allé au-delà!

Le bouton "ZOU!" affiche le UserForm.
Fais le test avec Gamme D et Fournisseur 2

... et vois si tu peux t'en inspirer ... ou pas!

Bon appétit, si vous passez à table (comme moi) :D
 

Pièces jointes

  • Filtre via UserForm (pochoco).xlsm
    24.4 KB · Affichages: 24

pochoco

XLDnaute Nouveau
Re : Formule selon resultats du filtre avance

Bonjour,
Raaa Modeste je suis super desolee de ne pas avoir donne de suite, j'ai ete pas mal prise (notamment par ce projet). J'ai trouve une autre solution.

Merci pour ton temps, et desolee encore!
 

Discussions similaires

Réponses
12
Affichages
321

Statistiques des forums

Discussions
312 222
Messages
2 086 394
Membres
103 200
dernier inscrit
pascalgip