Bonjour Cisco, bonjour le forum,
Si tu écrit le code en dehors de l'UserFrom, il te faut spécifier celui-ci pour faire référence à un de ses contrôles.
J'ai dû supprimer le code MouseUp des deux textboxes rendait impossible l'édition de deux dates !... (rarement vu un truc aussi mal foutu)
J'ai utilisé les dates en entier long pour filtrer...
Le code modifié :
Sub FiltreSurDate()
Dim DLig As Long ',
Dim StartDate As Long, EndDate As Long
Application.ScreenUpdating = False
With Sheets(1)
' Activer la feuille (n'est pas nécessaire)
'.Activate
' Trouver la dernière ligne du tableau
DLig = .Range("A" & Rows.Count).End(xlUp).Row
' Vérifier le filtre auto
If .FilterMode = False Then
.Range("A1:G1").AutoFilter
Else
' Supprimer le filtre sur les dates (au cas ou)
.Range("A1:G1").AutoFilter Field:=6
End If
' --Fourchette de date
StartDate = DateSerial(Year(controle.TextBoxDEB), Month(controle.TextBoxDEB), Day(controle.TextBoxDEB))
EndDate = DateSerial(Year(controle.TextBoxFIN), Month(controle.TextBoxFIN), Day(controle.TextBoxFIN))
' Filtrage des dates selon leur numéro de série
.Range("A1:G1").AutoFilter Field:=4, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
' Copie des lignes
'.Range("A1:G" & DLig).Copy Destination:=.Range("A10")
End With
Application.ScreenUpdating = True
End Sub
Soigne l'ordre des tabulations dans l'UserForm !... Tu ne te rends pas compte du temps perdu a utiliser une souris pour remplir une UserForm!