bonjour tous le monde,
je revient vers vous pour un problème de filtrage de données.
J'ai une page dans mon classeur qui devrais me servir à filtre des données d'un tableau se trouvant sur une autre feuille du même classeur.
Mon problème est que mon filtre ne marche pas.
J'ai vérifier pas de ligne vide dans mon tableau source, écriture exact des champs de critères.
Le pire c'est que je l'ai déjà fait sur un autre classeur et que cela fonctionne très bien.
Je comprend pas pourquoi, donc si quelqu'un pouvait me donner un ptit coup de main.
Merci d'avance.
Et donc en régle générale, sur le forum:
@pseudo d'un xldnaute veut dire que le texte qui suit le concerne
Donc dans mon précédent message, il y avait une partie du message qui te concernait et l'autre qui concernait youky(BJ)
Pour revenir à la question , tout à l'heure, je parlais de simplicifation
Donc si tu cherches à filtrer par année, on peut modifier ainsi
1) Le critère du filtre change (la formule en K2 sur la feuille filtre) devient
=ANNEE(source2!$C2)=ANNEE(filtre!$D$7)
NB: La cellule K1 doit alors absolument être vide
2) La macro doit être ainsi modifiée
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p As Range, crit As Range
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C7:E7")) Is Nothing Then Exit Sub
If Not IsDate([C7]) And Not IsDate([D7]) Then Exit Sub
If [E7] = "" Then Exit Sub
[B11:E1000].ClearContents
Set p = Range("filtre!$B$10:$E$10")
Set crit = Feuil3.Range("filtre!$K$1:$L$2")
Sheets("source2").Range("TableauSource[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=p, Unique:=False
End Sub
Ensuite, il suffit juste de saisir une date en D7 pour que les données soient filtrées sur l'année de la date en D7.
Et donc en régle générale, sur le forum:
@pseudo d'un xldnaute veut dire que le texte qui suit le concerne
Donc dans mon précédent message, il y avait une partie du message qui te concernait et l'autre qui concernait youky(BJ)
Pour revenir à la question , tout à l'heure, je parlais de simplicifation
Donc si tu cherches à filtrer par année, on peut modifier ainsi
1) Le critère du filtre change (la formule en K2 sur la feuille filtre) devient
=ANNEE(source2!$C2)=ANNEE(filtre!$D$7)
NB: La cellule K1 doit alors absolument être vide
2) La macro doit être ainsi modifiée
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p As Range, crit As Range
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C7:E7")) Is Nothing Then Exit Sub
If Not IsDate([C7]) And Not IsDate([D7]) Then Exit Sub
If [E7] = "" Then Exit Sub
[B11:E1000].ClearContents
Set p = Range("filtre!$B$10:$E$10")
Set crit = Feuil3.Range("filtre!$K$1:$L$2")
Sheets("source2").Range("TableauSource[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=p, Unique:=False
End Sub
Ensuite, il suffit juste de saisir une date en D7 pour que les données soient filtrées sur l'année de la date en D7.
aurais tu par hasard ce fichier parce que moi vu que se que à poster youki au poste 68 fonctionne nickel j'ai pas garder les autres.
Pour pas me mélanger les pinceaux.
Et donc en régle générale, sur le forum:
@pseudo d'un xldnaute veut dire que le texte qui suit le concerne
Donc dans mon précédent message, il y avait une partie du message qui te concernait et l'autre qui concernait youky(BJ)
Pour revenir à la question , tout à l'heure, je parlais de simplicifation
Donc si tu cherches à filtrer par année, on peut modifier ainsi
1) Le critère du filtre change (la formule en K2 sur la feuille filtre) devient
=ANNEE(source2!$C2)=ANNEE(filtre!$D$7)
NB: La cellule K1 doit alors absolument être vide
2) La macro doit être ainsi modifiée
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p As Range, crit As Range
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C7:E7")) Is Nothing Then Exit Sub
If Not IsDate([C7]) And Not IsDate([D7]) Then Exit Sub
If [E7] = "" Then Exit Sub
[B11:E1000].ClearContents
Set p = Range("filtre!$B$10:$E$10")
Set crit = Feuil3.Range("filtre!$K$1:$L$2")
Sheets("source2").Range("TableauSource[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=p, Unique:=False
End Sub
Ensuite, il suffit juste de saisir une date en D7 pour que les données soient filtrées sur l'année de la date en D7.
Re
Pour revenir à la question , tout à l'heure, je parlais de simplicifation Donc si tu cherches à filtrer par année, on peut modifier ainsi
1) Le critère du filtre change (la formule en K2 sur la feuille filtre) devient
=ANNEE(source2!$C2)=ANNEE(filtre!$D$7)
NB: La cellule K1 doit alors absolument être vide
(test OK sur le fichier fourni par youki(BJ))