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
| Sub saisie()
Dim zoneSaisie As Range
Dim ceJour As Date, heureSaisie As Double, calculTranche As Long, datesValables As Range
Dim deb1 As Double, fin1 As Double, deb2 As Double, fin2 As Double, deb3 As Double, fin3 As Double ' bornes des tranches horaires
ActiveSheet.Unprotect
ActiveSheet.Cells(1, 12).ClearContents
On Error GoTo Impossibilite
deb1 = Sheets("Calendrier").[AC11].Value: deb2 = Sheets("Calendrier").[AC12].Value: deb3 = Sheets("Calendrier").[AC13].Value
fin1 = Sheets("Calendrier").[AD11].Value: fin2 = Sheets("Calendrier").[AD12].Value: fin3 = Sheets("Calendrier").[AD13].Value
With ActiveSheet
heureSaisie = Time
.[F1].Value = heureSaisie
ceJour = Date
Lig = Evaluate("=match(C1,G1:G800,0)") + 4 ' Ligne de la 1ère cellule de la zone de saisie
calculTranche = (heureSaisie >= deb1) * (heureSaisie <= fin1) + 2 * (heureSaisie >= deb2) * (heureSaisie <= fin2) + 3 * (heureSaisie >= deb3) * (heureSaisie <= fin3)
Select Case calculTranche
Case 1
Col = 2 ' Colonne de la 1ère cellule de la zone de saisie
Case 2
Col = 7
Case 3
Col = 12
Case 0
GoTo Impossibilite
End Select
.Range(Cells(Lig, Col), Cells(Lig, Col).Offset(5, 0)).Select
Selection.Locked = False
Selection.FormulaHidden = False
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Exit Sub
Impossibilite:
With ActiveSheet
If Err = 1004 Then
.[L1].Value = "Saisie impossible pour cette date"
Else
.[L1].Value = "Saisie impossible pour cette heure"
End If
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub |
Partager