1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Private Sub Workbook_Open()
Dim Plage As Range, c As Range, Plage1 As Range, Dico As Object
Application.ScreenUpdating = False
If [Feuil1!R1] < Date Then
[Feuil1!R1] = Date
Set Dico = CreateObject("Scripting.Dictionary")
With Sheets("Feuil1")
Set Plage = .Range(.[Q3], .Cells(.Rows.Count, 1).End(xlUp))
.AutoFilterMode = False
Plage.AutoFilter 6, ">=" & Format(Date, "mm/dd/yyyy")
Plage.AutoFilter 15, ">0"
Set Plage1 = Plage.Offset(1, 16).Resize(Plage.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
Plage1.Value = "E"
Plage.AutoFilter 6, "<" & Format(Date, "mm/dd/yyyy")
Set Plage1 = Plage.Offset(1, 16).Resize(Plage.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
Plage1.Value = "D"
Plage.AutoFilter
Plage.AutoFilter 15, "=0"
Set Plage1 = Plage.Offset(1).Resize(Plage.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
For Each c In Plage1
If Not Dico.exists(c.Value) Then
Dico.Add c.Value, c.Value
End If
Next c
Set Plage = .Range(.[Q3], .Cells(.Rows.Count, 1).End(xlUp))
For Each Item In Dico.items
.AutoFilterMode = False
Set Plage = .Range(.[Q3], .Cells(.Rows.Count, 1).End(xlUp))
Plage.AutoFilter 1, Item
Set Plage1 = Plage.Offset(1, 16).Resize(Plage.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
Plage1.Value = "S"
Next Item
.AutoFilterMode = False
End With
End If
Application.ScreenUpdating = True
End Sub |
Partager