Erreur nom avec sommeprod et vba

Fermé
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 - 28 févr. 2016 à 21:16
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 - 29 févr. 2016 à 21:09
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

gbinforme Messages postés 14935 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 628
28 févr. 2016 à 21:26
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
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
28 févr. 2016 à 23:17
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
gbinforme Messages postés 14935 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 628
29 févr. 2016 à 08:51
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
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
29 févr. 2016 à 14:06
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
gbinforme Messages postés 14935 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 628
29 févr. 2016 à 14:41
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
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
Modifié par max850 le 29/02/2016 à 15:51
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
gbinforme Messages postés 14935 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 628
29 févr. 2016 à 18:16
Bonjour,

il te manque une parenthèse
=SOMMEPROD((GAUCHE(C6:C12;2)="61")*(E6:F12)) 
0
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3 > gbinforme Messages postés 14935 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
29 févr. 2016 à 20:27
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
max850 Messages postés 305 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
29 févr. 2016 à 21:09
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