Macro Écart-Type sous condition - Excel 2007
Bonjour à tous,
Je cherche à construire une macro qui pourrait me donner l'écart type d'une colonne selon plusieurs conditions (selon le même schéma que le AverageIfs). Voila mes différentes conditions:
- Ecart-type souhaité --> Colonne Emotion.RT " (Sheet (2))
- Condition 1 --> Emotion_Contexte = "surprise" (Sheet (2))
- Condition 2 --> Emotion.ACC = "1" " (Sheet (2))
Je vous joins ci-dessous le code que j'ai pour obtenir la moyenne selon ces conditions (et en pj, mon fichier). Est-ce que l'un de vous aurez une suggestion?
Merci beaucoup d'avance à tous ceux qui prendront le temps de m'aider, ou tout du moins, de me lire.
Alex
Option Explicit
Sub ExtractionDonnees2()
Dim Cel As Range
Dim Cel_1 As Range
Dim Colonne As Integer
Dim Colonne_1 As Integer
With Sheets(2)
Set Cel = .Rows(1).Find(what:="Emotion_Contexte", LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Set Cel_1 = .Rows(1).Find(what:="Emotion.ACC", LookIn:=xlValues, lookat:=xlWhole)
If Not Cel_1 Is Nothing Then
Colonne = Cel.Column
Colonne_1 = Cel_1.Column
Set Cel = .Rows(1).Find(what:="Emotion.RT", LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Sheets(3).Cells(4, 4) = Application.AverageIfs(.Columns(Cel.Column), .Columns(Colonne), "Surprise", .Columns(Colonne_1), "1")
Else
MsgBox "Colonne ""Emotion.RT"" introuvable"
End If
Else
MsgBox "Colonne ""Emotion.ACC"" introuvable"
End If
Else
MsgBox "Colonne ""Emotion_Contexte"" introuvable"
End If
End With
EndSub
Bonjour,
peut-être qu'une macro n'est pas nécessaire, Excel propose peut-être une fonction
qui pourrai répondre à ton problème.
Vois le lien suivant
Cordialement
Merci de ta réponse et de ta proposition Patrick, mais je souhaite faire une macro pour ne pas avoir à définir au préalable l'emplacement de mes colonnes (la macro mise pour averageifs va me chercher mes colonnes d'intérêt). Par ailleurs, j'ai de nombreuses données à traiter et une macro me permettrait de le faire plus simplement.
D'autres propositions? N'est-il pas possible sinon d'appeler cette fameuse fonction BDECARTYPE indiqué par Patrick via une macro? (mes lacunaires connaissances en VB ne me permettent pas de répondre à cette question!!) Ou encore de définir la plage d'intérêt, de la sélectionner et d'y appliquer la fonction StDev? (même si, de la lecture de la syntaxe de cette expression, je crois avoir compris qu'on ne peut pas rentrer une plage de données...)
Merci beaucoup pour votre aide.