Macro Somme à condition

alexbej

XLDnaute Nouveau
Bonjour,

J'ai un léger problème avec la macro ci-dessous. Je débute vraiment en VBA et il est possible que j'ai fait une erreur grotesque! Comme indiqué par les notes, ce que je cherche à faire c'est faire la somme (variable EmRT) des cases dans la colonne Emotion.RT , cases pour lesquels la valeurs est égale à "Surprise" dans la colonne Emotion_Contexte. Il n'y a pas de bug qd je lance a macro mais le résultat est toujours 0.... (ce qui m'a mis la puce à l'oreille!!!).
Est-ce que quelqu'un aurait une idée d'où ça coince?

Par ailleurs, qu'est ce que je devrais écrire pour EmRT si jamais je souhaitais obtenir la moyenne de ces valeurs? Ou encore, si je veux savoir combien de ces valeurs sont différentes de zéro ou non nul?

Merci beaucoup à ceux qui prendront le temps de me lire et de m'aider.
Alexbej



Sub ExtractionDonnees2()

i = 1

'Chercher colonne Emotion_Contexte

While (Sheets(1).Cells(1, i) <> "")
If (Sheets(1).Cells(1, i) = "Emotion_Contexte") Then

j = 1
EmRT = 0

'Chercher dans cette colonne les cases Surpises

If (Sheets(1).Cells(j, i) = "Surprise") Then

k = 1

'Prendre les valeurs dans Emotion.RT associé aux Surprises

While (Sheets(1).Cells(1, k) = "Emotion.RT")

'En faire la somme

EmRT = EmRT + Sheets(1).Cells(j, k)

Wend

k = k + 1

End If

j = j + 1


End If

i = i + 1

Wend

Sheets(2).Cells(1, 1) = EmRT

End Sub
 

Matheop

XLDnaute Occasionnel
Re : Macro Somme à condition

Salut alexbej,

Tu ne voudrais pas nous mettre en pièce jointe ton classeur (ou une ébauche de celui-ci) afin de voir à quoi ressemble le fichier? Cela serait beaucoup plus pratique pour ensuite pouvoir t'aider.

Cordialement,
Mat'
 

alexbej

XLDnaute Nouveau
Re : Macro Somme à condition

Bonjour MatiChoux,

Merci de ton intérêt pour mon problème. J'ai finalement trouvé une macro qui correspond à ce que je cherchais. C'est donc réglé! Je la mets ci-dessous pour ceux qui seraient intéressés par cette réponse. Par contre, je n'ai pas compris pourquoi la mienne ne marchait pas...!!!
Bien cordialement,

Alex




Option Explicit

Sub ExtractionDonnees2()
Dim Cel As Range
Dim Colonne As Integer

With Sheets(1)
Set Cel = .Rows(1).Find(what:="Emotion_Contexte", LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Colonne = Cel.Column
Set Cel = .Rows(1).Find(what:="Emotion.RT", LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Sheets(2).Cells(1, 1) = Application.SumIf(.Columns(Colonne), "Surprise", .Columns(Cel.Column))
Else
MsgBox "Colonne ""Emotion.RT"" introuvable"
End If
Else
MsgBox "Colonne ""Emotion_Contexte"" introuvable"
End If
End With
End Sub
 

Discussions similaires

Réponses
4
Affichages
401

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 731
Membres
110 554
dernier inscrit
Tchana Yoba