Sub precision_interne234U()
Dim i As Integer
Dim moy As Double
Dim SD As Double
Dim moy2 As Double
Dim SD2 As Double
With Sheets("005-IRMM100")
'on nomme les cellules de debut ou l'on mettra les différents résultat*
Range(.Cells(2, 58)).Name = "moyenne"
Range(.Cells(2, 59)).Name = "StandDev(x2)"
Range(.Cells(2, 60)).Name = "%SD"
'boucle for qui permettra des faire les isotopes 234U à 238U qui sont des colonnes 3 à 6, on parcours donc les colonnes 3 à 6
For j = 3 To 6
moy = Application.Average(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
SD = Application.StDev(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
moytest = Application.Average(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
SDtest = Application.StDev(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
'paramètre de test arbitraire on fera des test pour voir ce qui est le plus adequat 50%, 75% 80% etc
Do While SD / SDtest >= 0.75
'on parcours les lignes 24 à 53 ou les 30 mesures sont avec la boucle for
For i = 24 To 53
If .Cells(i, j) >= moy + SD Then .Cells(i, j) = ""
If .Cells(i, j) <= moy - SD Then .Cells(i, j) = ""
Next
'on stocke l'ancienne moyenne et l'ancien SD dans les variables XXXtest pour faire ensuite le test du while
moytest = moy
SDtest = SD
moy = Application.Average(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
SD = Application.StDev(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
Loop
'on calcule les moy et SD finaux et on les affiche dans tel ou tel colonnes/lignes correspondante
moyfinal = Application.Average(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
SDfinal = Application.StDev(.Range(.Cells(j, 24), .Cells(j, 53)).Value)
Range(.Cells(j, 58)).Value = moyfinal
Range(.Cells(j, 59)).Value = SDfinal * 2
Range(.Cells(j, 60)).Value = (moyfinal / (2 * SDfinal)) * 100
Next
'recalcule des moy et ecart type sans les valeurs abérrantes
End With
End Sub