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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| For i = 1 To Nb_Par
If Sheets("Tolérance_Variation").Range("R" & CStr(i + 7)).Value <> "Err" Then
Var_Mu = Sheets("Tolérance_Variation").Range("R" & CStr(i + 7)).Value
Else: Var_Mu = 0
End If
Tol_Mu = Sheets("Tolérance_Variation").Range("W" & CStr(i + 7)).Value
If Sheets("Tolérance_Variation").Range("S" & CStr(i + 7)).Value <> "Err" Then
Var_Sigma = Sheets("Tolérance_Variation").Range("S" & CStr(i + 7)).Value
Else: Var_Sigma = 0
End If
Tol_Sigma = Sheets("Tolérance_Variation").Range("X" & CStr(i + 7)).Value
'Alertes pour mu
If Abs(Var_Mu) > Tol_Mu Then
Sheets("Tolérance_Variation").Range("R" & CStr(i + 7)).Interior.ColorIndex = 3
Parametre = Sheets("Tolérance_Variation").Range("C" & CStr(i + 7)).Value
Sheets("Alertes").Range("C" & CStr(Ligne_Alerte)).Value = Parametre
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Variation importante de la moyenne: " & CStr(Round(100 * Abs(Var_Mu), 2)) & "% au lieu de " & CStr(Round(100 * Abs(Tol_Mu), 2)) & "% tolérés"
Ligne_Alerte = Ligne_Alerte + 1
Moy = Moy + 1
'Sheets("Résultat").Select
Else: Sheets("Tolérance_Variation").Range("R" & CStr(i + 7)).Interior.ColorIndex = 4
End If
' Progression = Round(100 * (2 * i - 1) / Nb_operations, 0)
' Application.StatusBar = "Veuillez patientez...Progression: " & CStr(Progression) & "%"
'Alertes pour sigma
If (Var_Sigma > 0) And (Var_Sigma > Tol_Sigma) Then
Sheets("Tolérance_Variation").Range("S" & CStr(i + 7)).Interior.ColorIndex = 3
Parametre = Sheets("Tolérance_Variation").Range("C" & CStr(i + 7)).Value
Sheets("Alertes").Range("C" & CStr(Ligne_Alerte)).Value = Parametre
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Augmentation importante de l'écart type: " & CStr(Round(100 * Abs(Var_Sigma), 2)) & "% au lieu de " & CStr(Round(100 * Abs(Tol_Sigma), 2)) & "% tolérés"
Ligne_Alerte = Ligne_Alerte + 1
Sig = Sig + 1
'Sheets("Résultat").Select
Else: Sheets("Tolérance_Variation").Range("S" & CStr(i + 7)).Interior.ColorIndex = 4
End If
' Progression = Round(100 * 2 * i / Nb_operations, 0)
' Application.StatusBar = "Veuillez patientez...Progression: " & CStr(Progression) & "%"
Next i
Sheets("Résultat").Activate
For j = 1 To Nb_Par
'3ème partie: Calcul des alertes des points marginaux
'Compteur du nb de points marginaux
Parametre = Sheets("Résultat").Cells(18, j + 6).Value
If Sheets("Résultat").Cells(1, j + 6).Value <> "" Then
LCL = Sheets("Résultat").Cells(1, j + 6).Value
Else: LCL = 0
End If
If Sheets("Résultat").Cells(3, j + 6).Value <> "" Then
UCL = Sheets("Résultat").Cells(3, j + 6).Value
Else: UCL = 0
End If
' Sheets("Résultat").Select
Select Case Sheets("Résultat").Cells(1, j + 6).Value
Case ""
If Sheets("Résultat").Cells(3, j + 6) = "" Then
'Limit = "Rien"
Else: 'Limit = "UL"
For k = 1 To Nb_Valeurs
If Not IsEmpty(Sheets("Résultat").Cells(der_cel + 1 - k, j + 6)) Then
Cel_Etude = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Value
Cel_Formule = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Formula
If (Cel_Etude > UCL) Then
Sheets("Alertes").Range("B" & CStr(Ligne_Alerte)).FormulaR1C1 = CStr(Sheets("Résultat").Range("F" & CStr(der_cel + 1 - k)).FormulaR1C1)
Sheets("Alertes").Range("C" & CStr(Ligne_Alerte)).Value = Parametre
Sheets("Alertes").Range("D" & CStr(Ligne_Alerte)).Value = Sheets("Résultat").Range("D" & CStr(der_cel + 1 - k)).Value
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Valeur marginale: " & CStr(Cel_Etude) & " au-dessus de la UCL: " & CStr(Round(UCL, 4))
Ligne_Alerte = Ligne_Alerte + 1
Marg = Marg + 1
End If
' Progression = Round(100 * Round((2 * Nb_Par + (j - 1) * Nb_Valeurs + k) / Nb_operations, 4), 0)
' Application.StatusBar = "Veuillez patientez...Progression: " & CStr(Progression) & "%"
End If
Next k
End If
Case Else
If Sheets("Résultat").Cells(3, j + 6) = "" Then
'Limit = "LL"
For k = 1 To Nb_Valeurs
If Not IsEmpty(Sheets("Résultat").Cells(der_cel + 1 - k, j + 6)) Then
Cel_Etude = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Value
Cel_Formule = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Formula
If (Cel_Etude < LCL) Then
Sheets("Alertes").Range("B" & CStr(Ligne_Alerte)).FormulaR1C1 = CStr(Sheets("Résultat").Range("F" & CStr(der_cel + 1 - k)).FormulaR1C1)
Sheets("Alertes").Range("C" & CStr(Ligne_Alerte)).Value = Parametre
Sheets("Alertes").Range("D" & CStr(Ligne_Alerte)).Value = Sheets("Résultat").Range("D" & CStr(der_cel + 1 - k)).Value
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Valeur marginale: " & CStr(Cel_Etude) & " au-dessous de la LCL: " & CStr(Round(UCL, 4))
Ligne_Alerte = Ligne_Alerte + 1
Marg = Marg + 1
End If
' Progression = Round(100 * Round((2 * Nb_Par + (j - 1) * Nb_Valeurs + k) / Nb_operations, 4), 0)
' Application.StatusBar = "Veuillez patientez...Progression: " & CStr(Progression) & "%"
End If
Next k
ElseIf Sheets("Résultat").Cells(1, j + 6).Value = Sheets("Résultat").Cells(3, j + 6).Value Then
'Limit = "Val"
For k = 1 To Nb_Valeurs
If Not IsEmpty(Sheets("Résultat").Cells(der_cel + 1 - k, j + 6)) Then
Cel_Etude = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Value
Cel_Formule = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Formula
If (Cel_Etude <> UCL) Then
Sheets("Alertes").Range("B" & CStr(Ligne_Alerte)).FormulaR1C1 = CStr(Sheets("Résultat").Range("F" & CStr(der_cel + 1 - k)).FormulaR1C1)
Sheets("Alertes").Range("C" & CStr(Ligne_Alerte)).Value = Parametre
Sheets("Alertes").Range("D" & CStr(Ligne_Alerte)).Value = Sheets("Résultat").Range("D" & CStr(der_cel + 1 - k)).Value
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Valeur marginale: " & CStr(Cel_Etude) & " différente de : " & CStr(Round(UCL, 4))
Ligne_Alerte = Ligne_Alerte + 1
Marg = Marg + 1
End If
' Progression = Round(100 * Round((2 * Nb_Par + (j - 1) * Nb_Valeurs + k) / Nb_operations, 4), 0)
' Application.StatusBar = "Veuillez patientez...Progression: " & CStr(Progression) & "%"
End If
Next k
Else 'Limit = "UL/LL"
For k = 1 To Nb_Valeurs
If Not IsEmpty(Sheets("Résultat").Cells(der_cel + 1 - k, j + 6)) Then
Cel_Etude = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Value
Cel_Formule = Sheets("Résultat").Cells(der_cel + 1 - k, j + 6).Formula
If (Cel_Etude > UCL) Or (Cel_Etude < LCL) Then
Sheets("Alertes").Range("B" & CStr(Ligne_Alerte)).FormulaR1C1 = CStr(Sheets("Résultat").Range("F" & CStr(der_cel + 1 - k)).FormulaR1C1)
Sheets("Alertes").Range("C" & CStr(Ligne_Alerte)).Value = Parametre
Sheets("Alertes").Range("D" & CStr(Ligne_Alerte)).Value = Sheets("Résultat").Range("D" & CStr(der_cel + 1 - k)).Value
If Cel_Etude > UCL Then
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Valeur marginale: " & CStr(Cel_Etude) & " au-dessus de la UCL: " & CStr(Round(UCL, 4))
Else
Sheets("Alertes").Range("E" & CStr(Ligne_Alerte)).Formula = "Valeur marginale: " & CStr(Cel_Etude) & " au-dessous de la LCL: " & CStr(Round(LCL, 4))
End If
Ligne_Alerte = Ligne_Alerte + 1
Marg = Marg + 1
End If
' Progression = Round(100 * Round((2 * Nb_Par + (j - 1) * Nb_Valeurs + k) / Nb_operations, 4), 0)
' Application.StatusBar = "Veuillez patientez...Progression: " & CStr(Progression) & "%"
End If
Next k
End If
End Select
Next j |
Partager