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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Option Explicit
Private Sub UserForm_Initialize()
MoisDCBx.AddItem "Janvier"
MoisDCBx.AddItem "Février"
MoisDCBx.AddItem "Mars"
MoisDCBx.AddItem "Avril"
MoisDCBx.AddItem "Mai"
MoisDCBx.AddItem "Juin"
MoisDCBx.AddItem "Juillet"
MoisDCBx.AddItem "Août"
MoisDCBx.AddItem "Septembre"
MoisDCBx.AddItem "Octobre"
MoisDCBx.AddItem "Novembre"
MoisDCBx.AddItem "Décembre"
MoisFCBx.AddItem "Janvier"
MoisFCBx.AddItem "Février"
MoisFCBx.AddItem "Mars"
MoisFCBx.AddItem "Avril"
MoisFCBx.AddItem "Mai"
MoisFCBx.AddItem "Juin"
MoisFCBx.AddItem "Juillet"
MoisFCBx.AddItem "Août"
MoisFCBx.AddItem "Septembre"
MoisFCBx.AddItem "Octobre"
MoisFCBx.AddItem "Novembre"
MoisFCBx.AddItem "Décembre"
End Sub
Private Sub AfficherBtn_Click()
Feuil1.Cells.EntireColumn.Hidden = False
End Sub
Private Sub MasquerBtn_Click()
Dim Col As Range, i As Integer, ColCachees() As Integer
Dim dateD As Date, dateF As Date, dateC As Date
If MoisDCBx.ListIndex = -1 Or MoisDCBx.ListIndex = -1 Then GoTo ErrorHandler
On Error GoTo ErrorHandler
dateD = CInt(JourDTBx.Value) & "/" & MoisDCBx.ListIndex + 1
dateF = CInt(JourFTBx.Value) & "/" & MoisFCBx.ListIndex + 1
On Error GoTo 0
Feuil1.Cells.EntireColumn.Hidden = False
ReDim ColCachees(0)
For Each Col In Feuil1.Columns
jourC = Feuil1.Cells(3, Col.Column).Value
If jourC = 0 Then Exit For
moisC = IIf(Feuil1.Cells(1, Col.Column).Value <> "", Feuil1.Cells(1, Col.Column).Value, Feuil1.Cells(1, Feuil1.Cells(1, Col.Column).End(xlToLeft).Column).Value)
dateC = " " & jourC & " " & moisC
If dateF < dateC Or dateD > dateC Then
If ColCachees(0) <> 0 Then ReDim Preserve ColCachees(UBound(ColCachees) + 1)
ColCachees(UBound(ColCachees)) = Col.Column
End If
Next Col
For i = 0 To UBound(ColCachees)
Feuil1.Cells(1, ColCachees(i)).EntireColumn.Hidden = True
Next i
Exit Sub
ErrorHandler:
MsgBox "Les dates fournies ne sont pas valides.", vbExclamation
End Sub |
Partager