Recherche par filtre avancé avec macro par périodes

Bonjour,

Je me permet de solliciter l'aide de ce forum car je ne parviens pas à trouver la solution par moi même.

Voici la situation :

Je dois rechercher dans une base de donnée des articles entre certaine périodes avec plusieurs critères, cette base de donnée représentant des sorties des doublons sont présent.

Pour l'instant je passe simplement par un filtre avancé sous Macro mais elle a ses limites car tout les champs doivent être remplies pour marcher, je bloque sur ce point depuis déjà quelques semaines sans trouver de réponse qui soit pratique car la solution que j'ai trouvé actuellement n'est pas satisfaisante.

J'avais pensé à une formule qui décale le critère de recherche du filtre avancé si la case est vide mais je ne sais pas du tout comment faire.

J'ai simplifié ma base de donnée mais ces 3 critères seront ceux de recherche.

Je vous joint le dossier en question

20exemple-bd.xlsm (21.22 Ko)

Si vous pouviez m'aider je serais incroyablement reconnaissant car je bloque complètement, merci !

Pourquoi une macro ?

Voici une solution bien plus simple =

capture d ecran 148
18exemple-bd.xlsm (15.15 Ko)

Bonjour,

Merci de votre réponse, le problème est que la recherche par période est un impératif qui m'a était confié et la fiche Excel doit être simple d'utilisation car les utilisateurs finaux ne connaitront pas forcément Excel (du tout). Il faut donc que le filtre avancé ce fasse par simple pression d'un bouton et le seul moyen que j'ai trouvé est de passer par une macro.

Mais le problème du filtre avancé que j'utilise actuellement est que je ne sais pas pourquoi des fois au lieu de faire simplement la recherche, il ne donne qu'un résultat vide sans message d’erreur. Cela dans 90% des cas arrive quand toutes les cellules des critères ne sont pas remplie.

Merci de votre aide

C'est dû à ceci :

=SI(B3="";"";B3)

Cela n'a pas le même effet que si la case était vide !!

Il faut donc programmer la case : soit la valeur introduite, soit ClearContents.

Bonjour,

Du coup l'on peut faire cela, je pourrais passer par le fait de au contraire si la case est différente de "rien" alors appliquer la formule : ">=" & Cellule

cela donnerais quelque chose comme ça ? Je ne m'y connait pas en programmation VBA

   Range("M3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-4]<>"""","">=""&RC[-4],.clearcontents)"

Merci encore une fois de m'aider !

Non je ne pense pas ...

Essaie quelque chose comme :

Range("M3").Select
if Range("ta cellule")="" then ' remplace "ta cellule" par celle où est entrée la valeur
Selection.clearcontents
else
ActiveCell.FormulaR1C1 = "RC[-4]"
endif

fait à main levée (non testé)

Ouah ! Bonsoir,

Juste au passage, ça m'a l'air d'un mélange de genres dont le résultat risque fort d'être hasardeux !

[Je crois que la toute première priorité serait de bannir l'enregistreur pour écrire du code... et la seconde choisir entre formules (à mettre manuellement) ou VBA, sauf cas très particuliers...)]

Cordialement.

[Et un salut à Steelson au passage...)

Ça marche, merci beaucoup !

Je vais essayer d'apprendre à coder ça sera plus simple à l'avenir vous avez raison !

Merci pour votre aide en tout cas vous me sauvez

Bon investissement, mais faut rester simple !

Salut MFerrand !

Un salut du jour !

Steelson : je n'avais pu m'empêcher de glisser un mot hier... je n'ai vu ton correctif qu'ensuite, je ne serais pas intervenu sinon.

Pour l'anecdote, j'étais venu voir ce sujet à cause de son titre... Tu venais alors de donner un premier avis, j'ai donc attendu pour voir comment ça allait tourner...

Cordialement.

Rechercher des sujets similaires à "recherche filtre avance macro periodes"