Public Sub Initialise_CRT()
Dim rep As Byte, don As Range, d As Date
Set WS = ThisWorkbook.Worksheets('C.R.T.')
WS.Columns('C:BB').EntireColumn.Hidden = False
' initialisation de la Cellule 'CRTTotal', pour déclarer la liste des Montants des C.R.T. : CRTRange
3
With WS
Set CRTTotal = WS.Range('CC1').End(xlToLeft).Columns
Set CRTFin = CRTTotal.End(xlToLeft).Columns
Set CRTRange = Range(Cells(1, 3), Cells(1, CRTFin.Column))
If .Cells(1, CRTFin.Column).Value = 'DATES' Then Set CRTRange = Nothing: Exit Sub
d = Date
Set CRTMyRange = .Range('B2:B15')
Set CRTLadate = CRTMyRange.Find(what:=d, after:=CRTMyRange(1, 1), LookIn:=xlFormulas, lookat:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
' si CRTLadate <> de Date => demander une mise à jour des dates
If CRTLadate Is Nothing Then rep = MsgBox('Vous n'avez pas remis les dates à jour ! ' & vbCr & vbCr & _
'Pour mettre à jour 'OK' ', vbCritical + vbOKCancel, _
Application.ActiveSheet & '\ Information')
If rep = vbYes Then
ModuleGeneral.Changer_la_date ' Mise à jour des dates
rep = vbCancel: GoTo 3 ' Réinitialisation de la ligne de date
End If
For Each don In .Range('B2:B15')
If don = Date Then
If Time < #6:00:00 PM# Then
Set CRTDateRange = .Range(.Cells(CRTLadate.Row, 3), _
.Cells(CRTLadate.Row, CRTFin.Column)): Exit For
ElseIf Time >= #6:00:00 PM# Then
Set CRTDateRange = .Range(.Cells(CRTLadate.Row + 1, 3), _
.Cells(CRTLadate.Row, CRTFin.Column)): Exit For
End If
End If
Next don
Accueil_Form.TotalCRTBox.Value = Format(CDbl(.Cells(CRTDateRange.Row, 54).Value), '0.00')
End With
End Sub