Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Resolu en VBA] - Filtre avancé, utiliser >= et <=

CPk

XLDnaute Impliqué
Bonjour, j'ai un gros trou de mémoire. J'ai déjà vu une solution quelque part mais impossible de me rappeler ou.

Dans la feuille Histofilter A2 et B2 ont un menu déroulant qui servent de critères pour un filtre avancé.
Comme c'est une plage de donné que je veux en résultat, je ne me souviens plus comment faire pour ajouter ">=" à la cellule A2 et "<=" à la cellule B2.

Par avance merci de vos lumières.
 

Pièces jointes

  • Cardio-bck.zip
    261.4 KB · Affichages: 40
Dernière modification par un modérateur:

job75

XLDnaute Barbatruc
Re : Filtre avancé, utiliser >= et <=

Bonjour CPK,

Code:
Sub FiltreAvancé()
Dim F1 As Worksheet, F2 As Worksheet, critere As Range
Set F1 = Sheets("histo")
Set F2 = Sheets("HistoFilter")
Set critere = F2.[C1:C2]
critere(2) = "=AND(ROUND(histo!A2,6)>=ROUND(A$2,6),ROUND(histo!A2,6)<=ROUND(B$2,6))"
F1.[A1].CurrentRegion.AdvancedFilter xlFilterCopy, critere, F2.[A5:G5]
'critere = "" 'facultatif
F2.Activate
End Sub
Comme vous le voyez le critère est en HistoFilter!C2.

La fonction ARRONDI/ROUND est nécessaire quand il s'agit de comparer des heures.

A+
 

CPk

XLDnaute Impliqué
Re : Filtre avancé, utiliser >= et <=

Bonjour et merci JOB75, pardon mais...pourquoi l'arrondi est nécessaire ? Les N° de série des heures sont bien des décimaux non ?
 

job75

XLDnaute Barbatruc
Re : [Resolu en VBA] - Filtre avancé, utiliser >= et <=

Re,

Enlevez les ROUND de la formule : vous ne récupérerez pas la ligne avec 00:22:00

C'est dû au fait que dans les comparaisons d'heures les dernières décimales (15ème, voire 14ème) peuvent être différentes.

A+
 

Discussions similaires

Réponses
12
Affichages
387
Réponses
3
Affichages
602
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…