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,

4 réponses

  1. 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
  2. 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
  3. 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
  4. Praljm Messages postés 52 Statut Membre
     
    Merci !
    je vais essayer d'avancer.
    Bien cdt
    0