XL 2019 Filtrage de données en VBA

Cloburk

XLDnaute Nouveau
Bonjour à tous,
Je fais face à un problème de filtrage de données.
j'ai un feuille Excel avec des données de facturation. en colonne K j'ai une série de date qui correspond au dates d'encaissement des factures. Je cherche par filtrage d'extraire toutes les lignes qui correspondent à un mois.
Ma routine fonctionne parfaitement pour extraire les données des mois de janvier à juillet. ensuite, le filtrage ne fonctionne plus .
Mon code est le suivant:
Sub FiltrerTest()


Datecritere = "09/01/2021"
datecriterfin = "07/31/2021"
LastLigneListeFact = Worksheets("Liste_Factures").Cells(Cells.Rows.Count, "A").End(xlUp).Row
Range("K5").Select
Selection.AutoFilter
ActiveSheet.Range("$A$4:$L" & LastLigneListeFact).AutoFilter Field:=11, Operator:= _
xlFilterValues, Criteria2:=Array(1, Datecritere)

'ActiveSheet.Range("$A$4:$L" & LastLigneListeFact).AutoFilter Field:=11, Operator:= _
xlAnd, Criteria1:=">=" & datecritere, Criteria2:="<=" & datecriterefin

---------------------------------------
Datecritere est le paramètre de date sous la forme demandée mm/dd/yyyy. Par exemple tel qu'il est cela représente le mois de septembre.
Datecriterefin est le paramètre que j'ai utilisé dans la formule en commentaire en testant entre deux dates.

J'ai un fichier testfiltrer.xlsm dont j'ai enlevé toutes données confidentielles et réduit le nombre de ligne ( fichier original fait 2000 lignes)

Je galère sur ce problème depuis des heures et un coup d'aide serait le bienvenu.
Merci par avance
Belle journée.






End Sub
 

Pièces jointes

  • testfiltrer.xlsm
    41.2 KB · Affichages: 6

Phil69970

XLDnaute Barbatruc
Bonjour @Cloburk

Je te propose ce fichier :
Pour les tests j'ai mis le filtre avec ces dates

1645095497825.png

*Merci de ton retour

@Phil69970
 

Pièces jointes

  • Test filtre sur date V1.xlsm
    42.4 KB · Affichages: 3

Cloburk

XLDnaute Nouveau
Bonjour Phil68970
Merci pour ton retour, cela marche tant qu'il n'y a pas de date au delà du 31.07.21.

J'ai essayé ta version avec 01/07/21 en date de début et 31/08/2021 en date de fin:
Résultat: le filtrage s'arrête au 01.08.2021. C'est mon problème original.

Merci de continuer de tester.
Belle journée.
Cloburk
 

Phil69970

XLDnaute Barbatruc
Bonjour @Cloburk

J'ai essayé ta version avec 01/07/21 en date de début et 31/08/2021 en date de fin:
Résultat: le filtrage s'arrête au 01.08.2021. C'est mon problème original.
Et pourtant cela fonctionne mais il faut mettre les bonnes dates .....

1645100961139.png


01/07/21 ==> Non OK mais ==> 01/07/2021 ==> Ok
01.08.2021 ==> Non OK mais ==> 31/08/2021 ==> Ok

Et je l'avais même précisé

1645100752481.png


Quand tu mets une "date" avec un point comme 31.08.2021 ce n'est pas une date pour excel
Donc tu transformes ton texte (pour excel) en date et cela fonctionnera.

Tu sélectionnes ta colonne Ctrl + F et tu remplace le . par /

1645101344703.png


*Merci de ton retour

@Phil69970
 

Cloburk

XLDnaute Nouveau
Re Bonjour Phil69970,
Ok ça fonctionne, cependant 2 choses me turlupinent:
1. Pourquoi cela fonctionnait jusqu'à la date du 30.07 ? Bon pas grave !
2. Après avoir faire la procédure de remplacement du point par le /, ce n'est pas visible dans mon tableau ? La date est toujours visible en 12.01.2022 et non 12/01/2022
La colonne était formatée en mode Date via le menu Format de cellule. Et là je n'ai pas de possibilité de choisir le / comme séparateur.

J'ai apporté les modifs dans mon programme principal et c'est OK, J'ai ajouté une commande Replace sur la colonne K avant de lancer le Filtrage.

ça fonctionne et c'est l'essentiel, mais j'aimerais comprendre. Si tu as une explication, je me recommande.

Encore Merci
Bonne soirée,
Cloburk
 

Phil69970

XLDnaute Barbatruc
Re

@Cloburk

1. Pourquoi cela fonctionnait jusqu'à la date du 30.07 ? Bon pas grave !
Si tu regardes bien le fichier que tu as fourni les dates sont bonnes jusqu'au 30/07/2021
Donc cela fonctionne pour les dates qui sont ok .... et avant le 30/07/2021

1645111812963.png


2. Après avoir faire la procédure de remplacement du point par le /, ce n'est pas visible dans mon tableau ?
Chez moi après la modif toutes les dates sont ok et bien visible comme des dates valides
1645111993547.png


@Phil69970
 

Phil69970

XLDnaute Barbatruc
@Cloburk

Je suis étonné que tu mettes ton propre post en résolu car tu n'as rien trouvé du tout et ton post ne correspond en rien à la réponse que tu souhaitais.
La logique est de valider la réponse qui correspond à la question que tu as posé.
Le but est de montrer qu'une réponse a été trouvée et montrer au forum laquelle correspond à ton problème et donc à ta question.

@Phil69970
 

Cloburk

XLDnaute Nouveau
Les paramètres régionaux " Français suisse" sont avec des points, alors que "Français France" ont un / dans la date.

J'ai mis résolu parce-que pour moi une solution m'a été proposée et que cela me satisfait.
Sorry si je n'ai pas bien compris le sens de "Résolu".
Cordialement
Cloburk
 

Cloburk

XLDnaute Nouveau
Si j'en crois le message que j'ai reçu de David Aubert le 16 janvier 2020, mon interprétation n'est pas si fausse.

Bonjour Cloburk,

Tu as déjà créé un ou plusieurs fils de discussions sur notre forum et j’espère que tu as pu trouver une solution à ton problème.

Si c'est déjà le cas ou lorsque que ce le sera, je te recommande de passer le statut de ton fil de discussion en statut « Résolu ».

Cela permet :
- aux personnes qui aident : d’identifier rapidement les fils qui ont encore besoin d’aide
- aux futurs lecteurs du fil de discussion : d’identifier qu’une solution a été apporté et de cibler directement les posts qui sont pertinents


Ou bien je n'ai rien compris.
Cordialement
Cloburk
 

Phil69970

XLDnaute Barbatruc
Re

Ou bien je n'ai rien compris.
En marquant un post comme résolu cela permet :
1) De voir rapidement les post qui a contrario n'ont pas été résolu et donc

d’identifier rapidement les fils qui ont encore besoin d’aide

2) A ceux qui ont un problème similaire au tien de voir tout de suite quel post correspond à la solution qui a pu solutionné ton problème

aux futurs lecteurs du fil de discussion : d’identifier qu’une solution a été apporté et de cibler directement les posts qui sont pertinents
D'ailleurs si tu regardes bien ici
1645116271486.png


En cliquant sur Voir le message dans son contexte (c'est fait pour ça) un utilisateur arrive directement à la réponse que le demandeur à validé ce qui lui évite de lire 50 voir 100 messages qui ne corresponde pas à la solution.

Maintenant tu fais comme tu veux mais tu peux regarder sur plusieurs autres post comment les personnes ont faits

@Phil69970
 

Discussions similaires

Réponses
3
Affichages
387
Réponses
2
Affichages
110

Statistiques des forums

Discussions
312 045
Messages
2 084 834
Membres
102 685
dernier inscrit
med_remi021