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 61 62 63 64
| Sub datejour()
Dim PlageActive As Range
Dim FeuilleActive As Worksheet
Set FeuilleActive = ActiveSheet
Set PlageActive = ActiveCell
If Range("n1") = 1 Then
Range("b1").Select
ActiveCell.FormulaR1C1 = Date
End If
Range("b1").Select
If Range("n1") = 0 Then
ActiveCell.FormulaR1C1 = Date - 1
End If
FeuilleActive.Activate
PlageActive.Activate
Application.OnTime Now + TimeValue("00:10:10"), "datejour"
End Sub
Option Explicit
Dim c, ln, i, plage()
Private Sub Worksheet_Change(ByVal Target As Range)
datejour
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Count > 1 Then End '
If Not Intersect(Target, Range("b1,A7,A52,A97,A142,A187,A232,A277,A322,A367,A412,A457,A502,A547,A592,A637,A682,A727,A772,A817,A862,A907,A952,A997,A1042,A1087,A1132,A1177,A1222,A1267,A1312,A1357")) Is Nothing Then
ActiveSheet.Unprotect ""
For ln = 7 To 1357 Step 45
For i = 0 To 2
ReDim Preserve plage(2)
Set plage(i) = Range("C" & ln + i * 15 + 2 & ":L" & ln + i * 15 + 4 & _
",M" & ln + i * 15 + 3 & ":R" & ln + i * 15 + 4 & _
",S" & ln + i * 15 + 2 & ":T" & ln + i * 15 + 4 & _
",U" & ln + i * 15 + 2 & ":X" & ln + i * 15 + 2 & _
",Y" & ln + i * 15 + 2 & ":AJ" & ln + i * 15 + 4 & _
",AK" & ln + i * 15 + 3 & ":AZ" & ln + i * 15 + 4 & _
",BA" & ln + i * 15 + 2 & ":BE" & ln + i * 15 + 4 & _
",BF" & ln + i * 15 + 2 & ":BF" & ln + i * 15 + 4 & _
",C" & ln + i * 15 + 6 & ":X" & ln + i * 15 + 14 & _
",Y" & ln + i * 15 + 6 & ":BF" & ln + i * 15 + 12 & _
",Y" & ln + i * 15 + 13 & ":BF" & ln + i * 15 + 14)
Next i
Union(plage(0), plage(1), plage(2)).Select
If Cells(ln, "A") = Cells(1, "b") Then
Selection.Locked = False
Else
Selection.Locked = True
End If
Next
ActiveSheet.Protect ""
End If
Application.EnableEvents = True
End Sub |
Partager