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 SubBonjour
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 SubSi 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 Sub2. Remplacez la ligne .AutoFilter Field:=19..... par celle ci-dessous
.AutoFilter Field:=19, Criteria1:="<" & madate, Operator:=xlAndLe 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