Variable et tri date compris entre

Bonjour à tous ceux qui lisent et aident, et les autre aussi

En VBA, je tente d'appliquer un filtre date compris entre deux dates.

Les valeurs sont bien indiquées dans le filtre mais il n'est pas appliqué.

Il suffit que j'aille voir ce qui est entré dans le filtre et cliquer sur ok pour que ça s'applique. Donc je ne comprends pas pourquoi ma macro ne fonctionne pas entièrement.

Le tri unique avec ma variable Vaction fonctionne très bien.

Voir ci-dessous ma macro:

Sub TriAction()

'

'Dim Vaction As Variant

Dim VdateDebut As Variant

Dim VdateFin As Variant

'Vaction = InputBox("Indiquer la valeur de tri de la colonne ACTION", "Saisie du filtre ACTION")

VdateDebut = InputBox("Indiquer la date de début", "Date de début")

VdateFin = InputBox("Indiquer la date de fin", "Date de fin")

'Range("A1").Select

' ActiveWorkbook.RefreshAll

ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_LOCATION").Range _

.AutoFilter Field:=8, Criteria1:=">=" & VdateDebut, Operator:=xlAnd, _

Criteria2:="<=" & VdateFin

' ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_LOCATION").Range _

' .AutoFilter Field:=13, Criteria1:=Vaction

End Sub

Merci pour vos retours, c'est mon premier post ici, dites moi s'il manque quelque chose.

Bonjour,

vous utilisez un InputBox pour vos critères "Date", c'est dangereux car on ne peut savoir si la valeur a été bien inscrit,

il serait plus prudent d'allouer 2 cellules pour entrer ces critères, ou d'utiliser un control DTPicker,

ou bien (ma favorite) 3 textBox, An, Mois, Jour, et la fonction DateSerial,

VdateDebut = DateSerial(An1, Mois1, Jour1)
VdateFin = DateSerial(An2, Mois2, Jour2)
.AutoFilter Field:=8, Criteria1:=">=" & VdateDebut, Operator:=xlAnd, Criteria2:="<=" & VdateFin

Bonjour,

merci pour votre réponse.

Effectivement ce n'est pas prudent. Je vais tenter la fonction Dateserial.

Je ne l'ai encore jamais utilisée, je vais fouiner un peu pour trouver comment utiliser ceci.

Bonjour,

J'ai modifié ma macro tel que, pour tester mon filtre "Entre"

Mais j'ai toujours le problème qu'il se rempli bien, mais il n'est pas exécuté.

Pour qu'il s’exécute, il faut que j'aille consulter le filtre, puis simple clic sur "Ok" et là ça fonctionne...

Je patauge sur cette action, merci pour vos réponses.

Sub TriAction()

'

Dim Vaction As Variant

Dim VdateDebut As Variant

Dim VdateFin As Variant

'Date_Calendrier.Show

Vaction = InputBox("Indiquer la valeur de tri de la colonne ACTION", "Saisie du filtre ACTION")

'Range("A1").Select

' ActiveWorkbook.RefreshAll

VdateDebut = Range("P2").Value

VdateFin = Range("P3").Value

ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_LOCATION").Range.AutoFilter Field:=8, Criteria1:=">=" & VdateDebut, Operator:=xlAnd, Criteria2:="<=" & VdateFin

ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_LOCATION").Range.AutoFilter Field:=13, Criteria1:=Vaction

End Sub

le filtre est bien actif avant l'exécution de la macro ?

ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_LOCATION").ShowAutoFilter = True

Bonjour,

Même en ajoutant "True", le filtre ne s’exécute pas.

Je ne comprends pas du tout pourquoi, je vous mets le fichier complet en PJ.

Merci beaucoup.

Bonjour,

Sub TriAction()
    Dim Vaction, VdateDebut, VdateFin
    Vaction = InputBox("Indiquer la valeur de tri de la colonne ACTION", "Saisie du filtre ACTION")
    With Worksheets("Sorties")
        If .FilterMode Then .ShowAllData
        VdateDebut = Format(CDate(.Range("P2")), "m/d/yyyy")
        VdateFin = Format(CDate(.Range("P3")), "m/d/yyyy")
        With .ListObjects(1).Range
            .AutoFilter 8, ">=" & VdateDebut, xlAnd, "<=" & VdateFin
            .AutoFilter 13, Vaction
        End With
    End With
End Sub

Cordialement.

Chapeau l'artiste.

Un grand merci 8)

Rechercher des sujets similaires à "variable tri date compris entre"