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 65 66 67 68 69 70 71 72 73 74 75 76
| Sub Verif()
Dim C As Integer, L As Integer, Serie As Integer, CTest As Integer, Erreur As Integer
NbLignes = Application.WorksheetFunction.CountA(ActiveSheet.Range("$A:$A"))
Erreur = 0
For L = 10 To NbLignes + 6
C = 4
Do While C <= 75
Serie = 1
If Cells(L, C).Interior.ColorIndex <> xlNone Then
Do While Cells(L, C + 1).Interior.ColorIndex = Cells(L, C).Interior.ColorIndex And C <= 75
Serie = Serie + 1
C = C + 1
Loop
CTest = 7
Do While CTest <= 75
If Cells(5, CTest).Interior.ColorIndex = Cells(L, C).Interior.ColorIndex Then
Exit Do
Else
CTest = CTest + 6
End If
Loop
Select Case CTest
Case 4 To 7
If Serie Mod 2 <> 0 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
End If
Case 10 To 13
'CNP - 15 minutes
If Serie * 10 Mod 15 <> 0 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End If
Case 16 To 19
'CST - 20 min
If Serie Mod 2 <> 0 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End If
Case 22 To 25
'VAD urgentes - 30 min
If Serie Mod 3 <> 0 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End If
Case 28 To 31
'VAD - 30 min
If Serie Mod 3 <> 0 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End If
Case 34 To 37
'Cs complexe - 30 min
If Serie Mod 3 <> 0 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End If
Case 46 To 49
'Temps administratif - 30 min
If Serie <> 3 Then
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End If
Case Is >= 74
Range(Cells(L, C - Serie + 1), Cells(L, C)).Value = "E"
Erreur = 1
End Select
End If
C = C + 1
Loop
Next L
If Erreur = 1 Then
MsgBox "Le tableau contient des erreurs."
Else
MsgBox "Le tableau ne contient aucune erreur."
End If
End Sub |
Partager