VBA: effectuer un tri en fonction de variables documentées dans userform

julienpoirier

XLDnaute Nouveau
Bonjour à tous,

je viens de m'inscrire car malgré de la recherche et de nombreux essais je bloque.
Donc voici mon problème: je souhaite filtrer des projets selon leurs dates de début et de fin.
Pour cela je fais documenter la période qui intéresse la personne (date début et date de fin) et normalement tous les projets qui se dérouleent tout ou partie dans cette période sont conservés
Le tri se fait sur 2 colonnes comme vous le constaterez. Ci dessous mon code.
Le problème semble venir du fait que je n'arrive pas à faire reconnaitre les critères de sélections. Par ex, si j'écris ">01/01/2013" cela passe sans problème. Sauf que ces dates peuvent changer suivant le désir de l'utilisateur.


Private Sub CommandButton1_Click()
Dim a As Date
Dim b As Date

a = TextBoxDateDebut.Text
b = TextBoxDateFin.Text

If MsgBox("Voulez vous vraiment utiliser ces dates pour le tri des projets?", vbYesNo, "Information") = vbYes Then

Worksheets("Extract").Activate

Range("W1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AA$363").AutoFilter Field:=23, Criteria1:="<" & b, Operator:=xlAnd
ActiveSheet.Range("$A$1:$AA$363").AutoFilter Field:=24, Criteria1:=">" & a, Operator:=xlAnd

End If
End Sub

Je finis par croire que je tourne en rond ou qu'il y un truc qui m'échappe vraiment.....

Merci d'avance pour votre aide.
A+
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : VBA: effectuer un tri en fonction de variables documentées dans userform

Bonsoir julien,

En général, en VBA, les nombres et les dates sont indiqués au format américain
essaye comme ça

Code:
ActiveSheet.Range("$A$1:$AA$363").AutoFilter Field:=23, Criteria1:="<" & format(b, "MM/DD/YYYY"), Operator:=xlAnd
    ActiveSheet.Range("$A$1:$AA$363").AutoFilter Field:=24, Criteria1:=">" & format(a, "MM/DD/YYYY"), Operator:=xlAnd
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : VBA: effectuer un tri en fonction de variables documentées dans userform

Bonjour,

En fonction de la version d'Excel, la date n'est pas formatée de la même façon.

Code:
Sub filtre1Date()
   If Val(Application.version) >= 12 Then
      [A5].AutoFilter field:=5, Criteria1:=Format([A2], "dd/mm/yyyy")
   Else
      [A5].AutoFilter field:=5, Criteria1:=Format([A2], "mm/dd/yyyy")
  End If
End Sub

Le filtre automatique

JB
 
Dernière édition:

julienpoirier

XLDnaute Nouveau
Re : VBA: effectuer un tri en fonction de variables documentées dans userform

bonjour,

c'est une bonne journée qui commence !
je me connecte et je vois 2 réponses à mon problème, c'est bien aimable :)

et en plus ca marche, j'arrive enfin a faire le tri tel que je le souhaite.
C'est vraiment ma problématique générale avec VBA, les subtilités de programmation....

Merci encore tototiti2008 et BOISGONTIER
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG