Bonjour camv_ol, le fil, le forum,
Est-ce possible de réaliser la même chose mais en VBA ?
Un essai :
Sub FiltreLesDates()
Dim dlig As Integer, Cel As Range
Dim Dat1 As Date, Dat2 As Date
' dernière ligne
dlig = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
ActiveSheet.Range("$A$1:$A$" & dlig).AutoFilter Field:=1
Call TrieDeLaColonneA
Dat1 = Date ' aujourd'hui
' si lundi, utiliser vendredi, sinon hier
If Format(Dat1, "W", 2) = 1 Then
Dat2 = Dat1 - 2
Else
Dat2 = Dat1 - 1
End If
' masque les lignes
For Each Cel In ActiveSheet.Range("$A$2:$A$" & dlig)
If Cel < Dat2 Then
ActiveSheet.Rows(Cel.Row & ":" & Cel.Row).EntireRow.Hidden = True
End If
Next Cel
End Sub
Sub TrieDeLaColonneA()
Dim dlig As Long
dlig = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add2 Key:=Range("A2:A" & dlig), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A1:C2" & dlig)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Bizz