Fonction sommoprod dans VBA

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. 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
    1. 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
      1. 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
        1. Merci !
          je vais essayer d'avancer.
          Bien cdt
          0