Re: vba - filtre automatique - problème avec les dates
Bonsoir,
La solution est toute trouvée.
Dans Excel, impossible de faire des filtres contenant des dates avec VBA.
La seule solution, est de convertir avant de faire le filtre, toute la colonne contenant les dates en numéro de série.
Puis, de convertir en numéro de série, également, la date saisie dans le textbox et de faire le filtre automatique.
Une fois le filtre exécuté, reformater les cellules au format date.
Et le tour est joué. Ni vu, ni connu, j't'embrouille.
Voici un exemple avec un tableau en A1:C21. Une colonne contenant des dates située dans la colonne A. Un userform nommé userform1, contenant un textbox nommé textbox1 et un bouton de commande nommé commandbutton1 :
Private Sub CommandButton1_Click()
Dim DateSaisie As Date
Dim NumDate As Long
If Me.TextBox1 = "" Then
Fin:
MsgBox "Aucune valeur saisie ou date erronée"
Me.TextBox1.Value = ""
Me.TextBox1.SetFocus
Exit Sub
End If
On Error GoTo Fin
DateSaisie = DateValue(Me.TextBox1.Value)
NumDate = DateSerial(Year(DateSaisie), Month(DateSaisie), Day(DateSaisie))
Range("a2:a" & Cells(65536, 1).End(xlUp).Row).NumberFormatLocal = "0"
Selection.AutoFilter Field:=1, Criteria1:=NumDate
Range("a2:a" & Cells(65536, 1).End(xlUp).Row).NumberFormatLocal = "jj/mm/aa"
End Sub
Private Sub UserForm_Initialize()
Range("a1").Select
Me.TextBox1.SetFocus
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Selection.AutoFilter Field:=1
Range("a2:a" & Cells(65536, 1).End(xlUp).Row).NumberFormatLocal = "jj/mm/aa"
End Sub
@+
Ronan
|