( résolut ) filtre par macro

bahnini mohamed

XLDnaute Occasionnel
bonjour
j'ai réalise cette exemple ou j'ai une feuille contient un tableau (base de donnée)
j'ai crée deux filtre par macro le première filtrer pour l’année scolaire et le deuxième pour les nom
mais j'ai deux problème:
1) je veut que si le première filtre effectuée selon la date le deuxième filtre conserve les donnée de la première filtre et filtre ces résultat selon le nom donnée.
2 ) je veut que les lignes vides dans non rempli entre les enregistrement ne s'affiche pas c'est a dire donnée les résultat ensemble.
merci les amis
 

Pièces jointes

  • exemple.xlsm
    18.9 KB · Affichages: 39
  • exemple.xlsm
    18.9 KB · Affichages: 49
  • exemple.xlsm
    18.9 KB · Affichages: 54
Dernière édition:

bahnini mohamed

XLDnaute Occasionnel
Re : filtre par macro

merci pour ta réponse
mais mon fichier n'est pas changer le code que je met mois et le meme tu n'a pas change rien dans le fichier
lorsque j'ai choisi une année pour le filtre 1 bien sur il va me donne des nom différent ou identique
je veut que le filtre 2 prend en considération les date donne par le filtre 1 et ne pas les changé
 
Dernière édition:

bahnini mohamed

XLDnaute Occasionnel
Re : filtre par macro

merci
voici l'exemple plus claire j'ai dans cette exemple quatre nom nommée "Mohamed " mais la date et différent
je choisi le filtre 2 Mohamed et le filtre 1 2008/2009
je veut avoir seulement les donnée correspond au deux critère "Mohamed" dont la date et "2008/2009" et les ligges vide n'apparaitre pas merci encore une fois
je m'excuse pour le dérangement
 

Pièces jointes

  • exemple 2.xlsm
    20.4 KB · Affichages: 38
  • exemple 2.xlsm
    20.4 KB · Affichages: 34
  • exemple 2.xlsm
    20.4 KB · Affichages: 32
Dernière édition:

job75

XLDnaute Barbatruc
Re : filtre par macro

Bonjour bahnini mohamed, Speel,

Pour le critère on peut utiliser AND et OR ou bien * et + :

Code:
Sub Filtre2()
    Range("f2") = "=and(or($c6=$d$2,$c6=$d$3),or($h6=$h$2,$h6=$h$3))"
    'Range("f2") = "=((c6=d$2)+(c6=d$3))*((h6=h$2)+(h6=h$3))"
    Range("a5:i10000").AdvancedFilter xlFilterInPlace, Range("f1:f2")
    Range("f2").ClearContents
End Sub

Bonne journée et A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : filtre par macro

Re,

Ah oui pour éliminer les lignes vides :

Code:
Sub Filtre1()
    Range("b2") = "=and(c6<>"""",or(c6=d$2,c6=d$3))"
    Range("a5:i10000").AdvancedFilter xlFilterInPlace, Range("b1:b2")
    Range("b2").ClearContents
End Sub

Sub Filtre2()
    Range("f2") = "=and(c6<>"""",h6<>"""",or($c6=$d$2,$c6=$d$3),or($h6=$h$2,$h6=$h$3))"
    Range("a5:i10000").AdvancedFilter xlFilterInPlace, Range("f1:f2")
    Range("f2").ClearContents
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 456
Membres
103 546
dernier inscrit
mohamed tano