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

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

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



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é



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 /



*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



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


@Phil69970
 

Cloburk

XLDnaute Nouveau
C'est ce qui m'a mis dans la m...ouise. Les / ne sont pas visibles chez moi. Est-ce que cela dépend des paramètres régionaux ?

Enfin je me méfierai lors de mes prochaines actions avec des dates.

Merci encore.
Cloburk
 

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


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

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