Soucis et problème de filtrage (filtre) par rapport à la date

bonjour,

je souhaite vos aides pour ce code dont j'ai un soucis pour détecter les dates

ce code filtre sur la colonne R et S selon 2 critères , le soucis se pose sur le critère madate2

soucis :

nous sommes le 30/04/2024 :

1 - si la date sur la colonne S est 30/03/2024 , le filtre fonctionne

2 - si la date possède un autre jour que le 30 ( exemple : 15/03/2024 ) le filtre ne fonctionne pas car il prend en considération le jour ( jj )

je veux qu'il prend en considération seulement le mois et qu'il ne s'intéresse pas au jour sur la date

Sub code12()

     Dim ws1 As Worksheet
     Dim madate As Date

     Set ws1 = ThisWorkbook.Sheets("Suivi des visites médicales")
     madate1 = Format(Now(), "mm/dd/yyyy")
     madate2 = DateSerial(Year(madate1), month(madate1) - 1, Day(madate1))

    With ws1
       .AutoFilterMode = False
       .Range("A4:T4").AutoFilter
       .Range("A4:T4").AutoFilter Field:=18, Criteria1:="12 - Nouvelle demande"
       .Range("A4:T4").AutoFilter Field:=19, Criteria1:="=" & madate2
    End With

    ws1.Select

End Sub

Bonjour

A voir votre profil sur la version Excel que vous mentionnez, la version 2008 concernait Excel MAC et cette version ne dispose pas de VBA. Pouvez-vous préciser et adapter la version dans le profil de votre compte.


Pour votre demande essayez comme ceci

Sub code12()
Dim ws1 As Worksheet

Set ws1 = ThisWorkbook.Sheets("Suivi des visites médicales")
With ws1
    .AutoFilterMode = False
    With .Range("A3:T3")
        .AutoFilter
        .AutoFilter Field:=18, Criteria1:="12 - Nouvelle demande"
        .AutoFilter Field:=19, Criteria1:=xlFilterLastMonth, Operator:=xlFilterDynamic
    End With
End With
ws1.Select
End Sub

Si ok et terminé

Cordialement

merci infiniment DAN

Microsoft® Excel® pour Microsoft 365 MSO (Version 2208 ) , 2016 ? c'est ça ?

ton code fonctionne parfaitement pour le mois précédent , par contre je souhaite l'améliorer encore plus.

nous sommes le 02/05/2024 = je veux avoir les lignes égale ou inférieur au 02/04/2024 et antérieur quelque soit l'année 2024 , 2023 , 2022 ect.....

Bonjour,

Microsoft® Excel® pour Microsoft 365 MSO (Version 2208 ) , 2016 ? c'est ça ?

C'est pas compliqué, vous pouvez voir cela en allant dans Fichier --> compte. Cette info est indiquée en haut à droite. Donc là je ne pense pas que vous allez trouver 2016 mais plutot 365.
en tout cas, ce n'est pas 2008 que vous avez comme mentionné.


ton code fonctionne parfaitement pour le mois précédent , par contre je souhaite l'améliorer encore plus.

nous sommes le 02/05/2024 = je veux avoir les lignes égale ou inférieur au 02/04/2024 et antérieur quelque soit l'année 2024 , 2023 , 2022 ect.....

Est-ce le filtre se fait uniquement sur les dates ou aussi sur le premier critère ?


Edit : ce que vous pouvez tester

1. Avant With ws1, mettez ceci

Dim madate
madate = InputBox("Choisir votre date", "Choix date")
If madate = vbNullString Then Exit Sub

2. Remplacez la ligne .AutoFilter Field:=19..... par celle ci-dessous

.AutoFilter Field:=19, Criteria1:="<" & madate, Operator:=xlAnd

Le code vous demandera un choix de date via l'instruction Inputbox

bonjour,

ce n'est pas mentionné 2016 , c'est 365 , j'ai fait une recherche sur le site Microsoft pour la Version 2208 et il m'a indiqué en 2016.

bon je crois que j'ai trouvé le soucis le tableau affiche les dates en français , par contre visiblement le format est en anglais

j'ai testé avec ton dernier macro en choisissant la date alors :

si je saisi la date en français cad 01/05/2024 , le filtre ne fonctionne pas

si je saisi la date en français cad 05/01/2024 , le filtre fonctionne parfaitement et il affiche les bonnes lignes

j'ai pu ajouter le code suivant et sa fonctionne parfaitement , il faut juste inverser le year , le Day et le month

.AutoFilter Field:=19, Criteria1:="<" & DateSerial(Year(Date), Day(Date), month(Date))

merci DAN de ta coopération

ce n'est pas mentionné 2016 , c'est 365 , j'ai fait une recherche sur le site Microsoft pour la Version 2208 et il m'a indiqué en 2016.

Alors mentionnez 365 dans votre profil, c'est le plus simple


si je saisi la date en français cad 01/05/2024 , le filtre ne fonctionne pas

Si, il fonctionnera mais selon vos données

Les dates c'est souvent un souci avec excel que l'on doit gérer au cas par cas
De mon coté si je mets la date 1/5/2024, il me considère comme jour/mois/année.

Une fois on a le bon format et de l'autre pas.
Tout cela dépend aussi des paramètres régionaux. Là je peux imaginer que votre excel ou windows est en Anglais
On peut aussi faire en sorte que l'inversion que vous avez faite, soit réalisée automatiquement par VBA

Par exemple : faites l'essai en mettant ceci dans le code

msgbox Application.International(xlDateOrder)

Dans votre cas cela vous renvoie 0 et dans mon cas cela renvoie 1

Même si vous avez la bonne solution, juste pour votre info sachez que l'on peut toujours faire un code qui tient compte de votre manière de procéder pour entrer une date.

Si ok et terminé

Cordialement

bonjour,

merci , je vais faire l'essaye et je te tiens au courant

Rechercher des sujets similaires à "soucis probleme filtrage filtre rapport date"