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

XL 2016 problème de filtre

jean marc1234

XLDnaute Occasionnel
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.
 

jean marc1234

XLDnaute Occasionnel
 

jean marc1234

XLDnaute Occasionnel
Bonjour à tous,
Voici avec macro sans filtre mais une boucle qui teste et mets les données.
Cela est actualisé dès le changement des valeurs.
Bruno
bonjour bruno, merci pour votre intervention.
Mais désolé sa ne fonctionne pas correctement.
Si par exemple je veut sélectionner du 01/01/2017 au 31/12/2017 ou une autre année cela ne me ressort rien.
J'ai besoin de savoir entre deux dates qui a aura son habilitation à repasser.
Merci encore une fois.
 

youky(BJ)

XLDnaute Barbatruc
Bon,
La macro prends >=Validation et <=Echéance
Il n'y a pas d'Echéance avant 31/12/2017 normal qu'elle trouve rien.
Revois tes critères . . . .
Je propose Echéance > que la date du jour
Dans ce code qui est facilement modifiable selon le besoin des critères
C'est cette ligne à revoir
If .Cells(lg, 2) >= [C7] And .Cells(lg, 3) >= Date And .Cells(lg, 4) = [E7] Then
Bruno
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Range(Target.Address), Range("C7:E7")) Is Nothing Then Exit Sub
If Not IsDate([C7]) Then Exit Sub
If Not IsDate([D7]) Then Exit Sub
If [E7] = "" Then Exit Sub
[B11:E1000].ClearContents
lig = 11
With Feuil4
For lg = 2 To .[A65000].End(3).Row
'If .Cells(lg, 2) >= [C7] And .Cells(lg, 3) <= [D7] And .Cells(lg, 4) = [E7] Then
If .Cells(lg, 2) >= [C7] And .Cells(lg, 3) >= Date And .Cells(lg, 4) = [E7] Then
Range("B" & lig & ":E" & lig).Value = .Range("A" & lg & ":D" & lig).Value
lig = lig + 1
End If
Next
End With
End Sub
 

jean marc1234

XLDnaute Occasionnel
re bonjour,
alors je viens d'essayer de faire ressortir un un enregistrement à échéance en 2021.
En rentrant
Validé -le Échéance -le Niveau
01/01/2021 -31/12/2021 -B2V ESSAI BR BC HOV
il devrait me sortir le résultat suivant:
marchand guillaume 06/04/2018 06/04/2021 B2V ESSAI BR BC HOV
Raymond bryan 18/04/2018 18/04/2021 B2V ESSAI BR BC HOV
même en modifiant la ligne de code cela ne fonctionne pas.
J'ai bien compris le code pourtant je pense.
Si tu pouvais me dire si chez toi lors de cette sélection sa ressort bien le résultat escompter.
Merci d'avance
 

youky(BJ)

XLDnaute Barbatruc
Tu dois avoir un lien qui a été créé cela se fait souvent en faisant les copiés-collé
Vérifier en 1er les boutons ou dessins.... si liens supprimer
Sur une copie supprimer un onglet et voir à l'ouverture si toujours lien pour trouver le bon onglet
refaire jusqu’à plus de lien
Bruno
 

jean marc1234

XLDnaute Occasionnel
Voici la ligne incriminée rectifiée
If .Cells(lg, 3) >= [C7] And .Cells(lg, 3) <= [D7] And .Cells(lg, 4) = [E7] Then
Ca doit le faire
Bruno
bonjour bruno,
je crois que hier j'ai parler trop vite.
Quand je rajoute des personnes dans ma source le trie ne se fait pas correctement.
Non seulement sur les date mais également sur les années.
J'ai chercher mais je vois pas pourquoi.
De plus sa aliment systématiquement ma zone de liste. Ce que je ne souhaite pas. Je veux pourvoir rester avec les deux choix possibles.
Je redemande donc un coup de main.
Merc d'avance.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…