XL 2019 Filtre avancé avec deux critères sur une colonne DATE

Cagouille65

XLDnaute Nouveau
Bonjour à tous,

J'essaie désespérément de créer un fichier avec une gestion par filtre avancé. Je suis assez satisfait dans l'ensemble mais il y a une chose que je n'arrive pas à faire : C'est gérer une date de début et une date de fin sur une colonne. Le principe est que lorsque l'on mets une début ou une date de fin ou les deux, le filtre trie sur la colonne date de paiement. Pour le moment cela fonctionne mais le tri se fait sur deux colonnes. La colonne date d'émission pour le critère date de début et date de paiement pour le critère date de fin.

Comment puis-je faire fonctionner mon filtre avec deux critères sur une colonne

Je vous mets le fichier en pièce jointe pour que vous compreniez mieux. Bien sûr, je suis à l'écoute de vos commentaires et retours. Pardonnez mon code un peu brouillon mais j'ai utilisé l'enregistreur de macro pour travailler.

Merci à tous
 

Pièces jointes

  • Projet Facture - TEST.xlsm
    260.6 KB · Affichages: 35
Dernière édition:
Solution
RE

Comme dit, plutôt que VBA, il vaut mieux utiliser PowerQuery

Même si le filtre avancé est très efficace, il n'a pas évolué depuis une éternité et n'intègre pas les nouveautés apparues depuis la version 2003 : les tableaux structurés notamment

On peut le forcer à les utiliser comme source en indiquant simplement comme source
Code:
Range("T_Factures[#All]")
au lieu de
VB:
Sheets("FACTURES").Range("A4:G15000")
(ce qui résoud le problème du nombre de lignes)
mais pas à restituer directement dans un tableau structuré

A noter qu'en VBA il faut toujours préciser l'onglet cible du CopyToRange

chris

XLDnaute Barbatruc
Bonjour

Il y a deux tables de critères, Choix et ChoixClient avec seulement le client pour la fiche client

NBCrit sert à vérifier combien de critères doivent être satisfaits afin de ne garder que les lignes qui les satisfont

PC sert à croiser les 2 tables qui n'ont pas d'ID en commun (PC pour moi étant Produit Cartésien)

Tu peux ajouter un code dans le module de l'onglet SYNT_ENTR_FOURN
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("Choix").ListObject.DataBodyRange) Is Nothing Then Exit Sub
    ThisWorkbook.RefreshAll
End Sub
mais, dans la mesure où 4 cellules peuvent être remplies dans ce tableau, un bouton serait plus logique (et le bouton existe déjà dans Excel...)

En revanche tu peux t'en inspirer pour l'onglet FICHE SYNTHESE CLIENT
 

Discussions similaires

Réponses
12
Affichages
288
Réponses
14
Affichages
516

Statistiques des forums

Discussions
312 096
Messages
2 085 254
Membres
102 839
dernier inscrit
Tougtoug