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

Macro de Filtrage avec plage de dates

  • Initiateur de la discussion Initiateur de la discussion Barberousse113
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Barberousse113

Guest
Bonjour,

Un ami m'a passé un extract de SAP sur lequel je souhaiterais effectuer des macros de filtrage.
Le premier filtre que je dois utiliser est un des filtres automatiques.
Cependant je dois ensuite filtrer sur une plage de date : je m'explique.
Pour chaque ligne, j'ai un champ date au format (m)m/(d)d/yyyy.

Ce que je cherche à réaliser serait une macro demandant sur quelle mois et quelle année l'utilisateur veut effectuer le tri et ensuite lui retourner les cellulles avec un champ date faisant partie du mois demandé.

Si mon fichier vous serait utile, je le rajouterai, (j'ai préféré ne pas surcharger ds un premier temps.

D'avance grand merci

PS : Je suis un débutant (un peu boulet) en VBA, j'utilise Excel 2003 SP2 sous Windows XP
 
Re : Macro de Filtrage avec plage de dates

Sorry, je n'avais pas vu tes dernières réponses
avec la dernière macro que tu a s donnée : 11 et 2007 donnent 11/01/2007
 
Re : Macro de Filtrage avec plage de dates

Oui, c'est bien sur un mois, ceci était un essai en fait...
Enfin, les résultats ne correspondent pas vraiment avec le filtre
 
Re : Macro de Filtrage avec plage de dates

RE


La fonction permet de formater des dates aux format anglais


As-tu testé cette macro?
Code:
Sub lastTEST()
Dim XX As String
Dim ANNEE As String
Dim MOIS As String
ANNEE = InputBox("Quelle année?", "Choix de l'année")
MOIS = InputBox("Quel mois?", "Choix du mois")
'renvoie le premier jour du mois (à cause du 1)
XX = ANNEE & "/" & MOIS & "/1"
MsgBox format(DateValue(XX), "mm/dd/yyyy")
End sub
Sur mon PC (francophone), j'ai bien un affichage
12/01/2007
Pour ANNEE=2007
Et MOIS=12
 
Re : Macro de Filtrage avec plage de dates

Re


Donc en reprenant le code de 15h00

Code:
Sub Macro1()
Dim X As String
Dim ANNEE As String
Dim MOIS As String
Dim Criter As String
Dim Criter2 As String
ANNEE = InputBox("Quelle année?", "Choix de l'année")
MOIS = InputBox("Quel mois?", "Choix du mois")
'renvoie le premier jour du mois (à cause du 1)
X = "1/" & MOIS & "/" & ANNEE
Select Case MOIS
Case 1, 3, 5, 7, 8, 10, 12
Criter2 = Format(CDate(X) + 30, "mm/dd/yyyy")
Case 4, 6, 9, 11
Criter2 = Format(CDate(X) + 29, "mm/dd/yyyy")
End Select
Criter = Format(X, "mm/dd/yyyy")
Range("H1").AutoFilter Field:=9, Criteria1:=">=" & Criter, Operator:=xlAnd _
, Criteria2:="<=" & Criter2
End Sub
et celui-là
Code:
Dim XX As String
Dim ANNEE As String
Dim MOIS As String
Dim FIN_MOIS As String
ANNEE = InputBox("Quelle année?", "Choix de l'année")
MOIS = InputBox("Quel mois?", "Choix du mois")
'renvoie le premier jour du mois (à cause du 1)
XX = ANNEE & "/" & MOIS & "/1"
FIN_MOIS = ANNEE & "/" & MOIS & "/31"
MsgBox Format(DateValue(XX), "mm/dd/yyyy")
MsgBox Format(DateValue(FIN_MOIS), "mm/dd/yyyy")
 
Dernière édition:
Re : Macro de Filtrage avec plage de dates

RE

Je te laisse tester
Code:
Sub MacroFIN()
Dim X As String
Dim ANNEE As String
Dim MOIS As String
Dim FIN_MOIS_31 As String
Dim FIN_MOIS_30 As String
Dim Criter As String
Dim Criter2 As String
ANNEE = InputBox("Quelle année?", "Choix de l'année")
MOIS = InputBox("Quel mois?", "Choix du mois")
'renvoie le premier jour du mois (à cause du 1)
XX = ANNEE & "/" & MOIS & "/1"
FIN_MOIS_31 = ANNEE & "/" & MOIS & "/31"
FIN_MOIS_30 = ANNEE & "/" & MOIS & "/30"
Select Case MOIS
Case 1, 3, 5, 7, 8, 10, 12
Criter2 = format(DateValue(FIN_MOIS_31), "mm/dd/yyyy")
Case 4, 6, 9, 11
Criter2 = format(DateValue(FIN_MOIS_30), "mm/dd/yyyy")
Case 2
MsgBox "Pas encore traité le mois Février"
End
End Select
Criter = format(DateValue(XX), "mm/dd/yyyy")
Range("H1").AutoFilter Field:=9, Criteria1:=">=" & Criter, Operator:=xlAnd _
, Criteria2:="<=" & Criter2
End Sub
 
Re : Macro de Filtrage avec plage de dates

Re

Voici ma dernière contribution
Théoriquement gère maintenant le mois de Février
Code:
Sub MACRO_SEMBLANT_FONCTIONNER()
'Déclarations
Dim ANNEE As Long: Dim MOIS As Long
Dim Date_DEB As Date: Dim US_Date As Long
'Choix du de l'année
ANNEE = InputBox("Quelle année?", "Choix de l'année")
'Choix du mois
MOIS = InputBox("Quel mois?", "Choix du mois")
'Formatage de la date
Date_DEB = DateSerial(ANNEE, MOIS, 1)
US_Date = Date_DEB
'Application du filtre selon mois choisi
Select Case MOIS
Case 1, 3, 5, 7, 8, 10, 12
Range("H1").AutoFilter Field:=9, Criteria1:=">=" & US_Date, Operator:=xlAnd _
, Criteria2:="<=" & US_Date + 30
Case 4, 6, 9, 11
Range("H1").AutoFilter Field:=9, Criteria1:=">=" & US_Date, Operator:=xlAnd _
, Criteria2:="<=" & US_Date + 29
Case 2
If Month(US_Date + 28) = 2 Then
Range("H1").AutoFilter Field:=9, Criteria1:=">=" & US_Date, Operator:=xlAnd _
, Criteria2:="<=" & US_Date + 28
ElseIf Month(US_Date + 27) = 2 Then
Range("H1").AutoFilter Field:=9, Criteria1:=">=" & US_Date, Operator:=xlAnd _
, Criteria2:="<=" & US_Date + 27
End If
End Select
End Sub
Je la passe la main aux autres forumeurs.
 
Re : Macro de Filtrage avec plage de dates

J'ai pris le temps de tester...longtemps
la conclusion ????

MERCI !!!!!!!!🙂🙂🙂

Je vais maintenant pouvoir extraire à retour de bras 🙂))

Encore merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
29
Affichages
2 K
StanislasC
S
M
Réponses
10
Affichages
2 K
maxime45
M
J
Réponses
2
Affichages
2 K
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…