Fonction sommoprod dans VBA

Praljm Messages postés 52 Statut Membre -  
Praljm Messages postés 52 Statut Membre -
Bonjour,

Je souhaite traduire la fonction excel suivante en langaga vba :

=SOMMEPROD((ANNEE(A1:A1000)=E1)*(MOIS(b1:b1000)=F1)*(B1:B1000=G1)*(C1:C1000))

Merci d'avance pour votre aide
Cordialement,
A voir également:

4 réponses

Frenchie83 Messages postés 2254 Statut Membre 339
 
Bonjour
Pourquoi ne pas utiliser l'enregistreur de macro, il le fera très bien, vous n'aurez plus qu'à récupérer la formule.
cdlt
0
Praljm Messages postés 52 Statut Membre
 
Bonjour,
Merci pour l'idée que je viens de concrétiser.
Cependant j'ai une variable à insérer...

Dim i As String
For i = 1 To 10 'nombre de lignes concernées
Range("J1").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((R[-9]C[-8]:R[-4]C[-8]=R[1]C1)*(R[-9]C[-7]:R[-4]C[-7]=""Oui"")*(R[-9]C[-6]:R[-4]C[-6]))"
Next i
End Sub

=> la partie =R[1]C1) est une variable texte située en cellule A2.
Merci pour l'aide !
Cdt
0
Frenchie83 Messages postés 2254 Statut Membre 339
 
Bonjour
1)- Créer votre variable:
MaVariable="VotreVariable"

2)-Mettez votre formule en variable en y insérant la variable précédente:
MaFormule="=SUMPRODUCT((R[-9]C[-8]:R[-4]C[-8]=" & MaVariable & ")*(R[-9]C[-7]:R[-4]C[-7]=""Oui"")*(R[-9]C[-6]:R[-4]C[-6]))" 
3)- Appliquez à la cellule J1:
 Range("J1").FormulaR1C1 = MaFormule

En espérant que cela réponde à votre problème.
Cdlt
0
Praljm Messages postés 52 Statut Membre
 
Merci !
je vais essayer d'avancer.
Bien cdt
0