Erreur nom avec sommeprod et vba

max850 Messages postés 312 Statut Membre -  
max850 Messages postés 312 Statut Membre -
Bonsoir le forum,

lorsque j veux traduire la fonction sommeprod en vba avec =sommeprod
j'obtiens erreur #NOM?((C6:C10=61) * (E6:F10)) au lieu de ma somme
C6:C10 souligné
lorsque j'utilise sumproduct j'obtiens 0 au lieu de ma somme
Sub essai()
Dim ligne As String, ou As Long
code = "61"
ligne = Range("c" & Rows.Count).End(xlUp).Row
Range("A18").Formula = "=sumproduct((C6:C" & ligne & "=" & code & ")*(E6:F" & ligne & "))"
End Sub

pouvez vous m'aider

merci

4 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Pour éviter de te compliquer la vie, utilises la formule en français :
    Range("A18").Formulalocal = "=SOMMEPROD((C6:C" & ligne & "=" & code & ")*(E6:F" & ligne & "))" 

    et je pense que ton erreur vient de "E6:F" :"E6:E" non ?
    0
  2. max850 Messages postés 312 Statut Membre 3
     
    bonsoir gbinforme
    ai corrigé en mettant formulalocal
    ai corrigé également les critères qui étaient représentés par 3 chiffre au lieu de 2, E6:F & ligne étant la plage à prendre en compte pour le calcul
    Dim ligne As String, ou As Long
    code = "61"
    ligne = Range("c" & Rows.Count).End(xlUp).Row
    Range("A18").FormulaLocal = "=sommeprod((C6:C" & ligne & "=" & code & ")*(E6:F" & ligne & "))"

    et ça marche
    mais cela m'amène une autre question
    est il possible de traduire en vba le
    (GAUCHE(C6:C10;2)="61") de ma formule pour l'inclure dans ma procédure vba ?

    merci
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      est il possible de traduire en vba le (GAUCHE(C6:C10;2)="61")

      Si tu mets formulalocal tu n'as pas besoin de traduire, mais je ne vois pas la finalité de cette formule et d'autant plus en VBA où left est plus simple à utiliser.
      0
  3. max850 Messages postés 312 Statut Membre 3
     
    Bonjour gbinform
    je me suis mal exprimé

    dans
    Range("A18").FormulaLocal = "=sommeprod((C6:C" & ligne & "=" & code & ")*(E6:F" & ligne & "))" mon critère est égal à la valeur de chaque cellule de la colonne C6:C(ligne) c'est à dire un nombre de 3 chiffres et je voudrais uniquement les deux premiers chiffres en conservant le code
    Range("A18").FormulaLocal ......
    merci
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      Effectivement, la communication était brouillée, tu mets ta formule comme sur la feuille avec le code entre guillements sinon cela ne fonctionnera pas :
      Range("A18").FormulaLocal = "=SOMMEPROD((GAUCHE(C6:C" & ligne & ";2)=""" & code & """)*(E6:F" & ligne & "))"
      0
  4. max850 Messages postés 312 Statut Membre 3
     
    merci gbinforme pour le code
    le l'ai inclus dans mon userform
    au lieu d'avoir ma somme j'ai en A18 : =SOMMEPROD((GAUCHEC6:C12;2)="61")*(E6:F12))

    quand je clique sur fx argument de fonction j'ai bien ma somme qui s'affiche en résultat dans la fenêtre
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      il te manque une parenthèse
      =SOMMEPROD((GAUCHE(C6:C12;2)="61")*(E6:F12)) 
      0
      1. max850 Messages postés 312 Statut Membre 3 > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
         
        ai fait une copie/:collé de ton code dans le userform et j'ai toujours
        la formule qui s'affiche au lieu de la somme et quand je vais dans argument de la fonction en cliquant sur fx j'ai bien la somme qui apparait en resultat

        Ai rentré la formule sommeprod dans la cellule a18 et quand j'active la macro j'ai également la formule qui s'affiche dans la cellule
        0
    2. max850 Messages postés 312 Statut Membre 3
       
      gbinforme j'ai trouvé la solution
      il faut que la cellule A18 soit au format nombre pour afficher la somme au lieu de texte qui affiche la formule

      merci gbinforme ce sera tout pour ce soir
      merci encore
      0