Bonjour,
Je suis chimiste analyticien et dans le cadre de mes recherches j'essaye de me programmer une petite macro sur VBA afin de faciliter le traitement de mes données.
J'essaye ici simplement d'exclure les valeurs aberrantes lors de mes analyses.
Aujourd'hui j'ouvre mon fichier excel avec mes données et en traçant celle-ci j'identifie les valeurs aberrantes et je les retire "à la main". Ensuite je calcule ma moyenne et mon écart type et encore une fois je retire les valeurs qui sortent de + ou - 2x mon écart type "à la main".
Comme vous pouvez le supposer cela est très chronophage surtout quand dans une séquence d'analyse isotopique j'ai parfois 200 à 300 analyses elles-même composés de 30 mesures de plusieurs isotopes différents et ainsi pour vérifier la précision interne de mon appareil il me faut ouvrir les 200/300 fichiers de 30 mesures et faire cette exclusion à la main sur chaque isotope....
j'ai donc voulu essayer sur la colonne C qui est mon isotope 234U et dont les valeurs sont sur les ligne 24 à 53 et voici mon code VBA
Sub precision_interne234U()
Dim i As Integer
Dim moy As Double
Dim SD As Double
Dim moy2 As Double
Dim SD2 As Double
moy = WorksheetFunction.Average(Range("C24:C53"))
SD = WorksheetFunction.StDev(Range("C24:C53"))
For i = 24 To 53
If Cells(i, 3) >= moy + 2 * SD Then Cells(i, 3) = ""
If Cells(i, 3) <= moy + 2 * SD Then Cells(i, 3) = ""
Next
'recalcule des moy et ecart type sans les valeurs abérrantes
moy2 = WorksheetFunction.Average(Range("C24:C53"))
SD2 = WorksheetFunction.StDev(Range("C24:C53"))
End Sub
Mon problème est que lorsque je fait F5, j'ai une erreur d’exécution 1004 et je n'arrive pas à résoudre ce problème en fouillant sur le forum ni même a très bien comprendre ce qu'est cette fameuse erreur.
En vous remerciant par avance
Je suis chimiste analyticien et dans le cadre de mes recherches j'essaye de me programmer une petite macro sur VBA afin de faciliter le traitement de mes données.
J'essaye ici simplement d'exclure les valeurs aberrantes lors de mes analyses.
Aujourd'hui j'ouvre mon fichier excel avec mes données et en traçant celle-ci j'identifie les valeurs aberrantes et je les retire "à la main". Ensuite je calcule ma moyenne et mon écart type et encore une fois je retire les valeurs qui sortent de + ou - 2x mon écart type "à la main".
Comme vous pouvez le supposer cela est très chronophage surtout quand dans une séquence d'analyse isotopique j'ai parfois 200 à 300 analyses elles-même composés de 30 mesures de plusieurs isotopes différents et ainsi pour vérifier la précision interne de mon appareil il me faut ouvrir les 200/300 fichiers de 30 mesures et faire cette exclusion à la main sur chaque isotope....
j'ai donc voulu essayer sur la colonne C qui est mon isotope 234U et dont les valeurs sont sur les ligne 24 à 53 et voici mon code VBA
Sub precision_interne234U()
Dim i As Integer
Dim moy As Double
Dim SD As Double
Dim moy2 As Double
Dim SD2 As Double
moy = WorksheetFunction.Average(Range("C24:C53"))
SD = WorksheetFunction.StDev(Range("C24:C53"))
For i = 24 To 53
If Cells(i, 3) >= moy + 2 * SD Then Cells(i, 3) = ""
If Cells(i, 3) <= moy + 2 * SD Then Cells(i, 3) = ""
Next
'recalcule des moy et ecart type sans les valeurs abérrantes
moy2 = WorksheetFunction.Average(Range("C24:C53"))
SD2 = WorksheetFunction.StDev(Range("C24:C53"))
End Sub
Mon problème est que lorsque je fait F5, j'ai une erreur d’exécution 1004 et je n'arrive pas à résoudre ce problème en fouillant sur le forum ni même a très bien comprendre ce qu'est cette fameuse erreur.
En vous remerciant par avance