Somme.Si.Ens VBA

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
Avatar du membre
philippe87
Membre fidèle
Membre fidèle
Messages : 170
Appréciation reçue : 1
Inscrit le : 28 octobre 2012
Version d'Excel : 2007

Message par philippe87 » 3 juin 2014, 14:47

Bonjour,

j'ai essayé d'écrire le code suivant, pour moi il me renvoi 0 pour il ne fonctionne pas
Sub Macro2()'
T = Application.WorksheetFunction _
.SumIfs(Range("e59:e179"), Range("a59:a179"), Cells(59, 1).Value, Range("ai59:ai179"), "" <= "" & Cells(59, 36).Value)
Cells(59, 40).Value = T
End Sub
Si je supprime une partie de mon texte (Range("ai59:ai179"), "" <= "" & Cells(59, 36).Value) mon code fonctionne je pense que le probléme viens de la deuxiéme partie car les champs controlés sont au format date et heures

ci joint le le fichier épuré pour une meilleure compréhention

merci de votre aide par avance
philippe
SommeSiEns.xlsm
(44.33 Kio) Téléchargé 63 fois
f
frangy
Passionné d'Excel
Passionné d'Excel
Messages : 4'337
Appréciation reçue : 1
Inscrit le : 19 novembre 2012
Version d'Excel : 2007 FR

Message par frangy » 3 juin 2014, 15:35

Bonjour,

Essaie comme cela
Sub Macro2()
Dim T As Double
Dim Critere1 As String
Dim Critere2 As Date
    With Worksheets("Feuil1")
        Critere1 = .Cells(59, 1).Value
        Critere2 = .Cells(59, 36).Value
        T = Application.WorksheetFunction.SumIfs(.Range("E59:E179"), _
        .Range("A59:A179"), Critere1, _
        .Range("AI59:AI179"), ">=" & Critere2)
        .Cells(59, 40).Value = T
    End With
End Sub
A+
Avatar du membre
philippe87
Membre fidèle
Membre fidèle
Messages : 170
Appréciation reçue : 1
Inscrit le : 28 octobre 2012
Version d'Excel : 2007

Message par philippe87 » 3 juin 2014, 16:18

bonjour Frangy

ok pour moi ça donne bien ce que je veux.

merci de ton aide

philippe
Avatar du membre
philippe87
Membre fidèle
Membre fidèle
Messages : 170
Appréciation reçue : 1
Inscrit le : 28 octobre 2012
Version d'Excel : 2007

Message par philippe87 » 4 juin 2014, 11:07

bonjour Frangy

je viens de vérifier , le code ne prend pas en compte le critére2 "<="

merci de ton aide

philippe
f
frangy
Passionné d'Excel
Passionné d'Excel
Messages : 4'337
Appréciation reçue : 1
Inscrit le : 19 novembre 2012
Version d'Excel : 2007 FR

Message par frangy » 4 juin 2014, 17:00

Efectivement, le critére2 "<=" pose problème :scritch: et je n'ai pas trouvé la solution en utilisant la méthode WorksheetFunction.SumIfs.
Tu peux toujours utiliser la fonction Excel
Sub Macro2()
Dim T As Double
Dim Expression As String
    With Worksheets("Feuil1")
        Expression = "SUMIFS(E59:E179,A59:A179," & .Range("A59").Address(0, 0) & ",AI59:AI179,""<="" & AJ59)"
        T = Application.Evaluate(Expression)
        .Cells(59, 40).Value = T
    End With
End Sub
A+
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message