Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Equivalent VBA de =SOMMEPROD(ABS(MaPlage))

3 réponses
Avatar
HD
Bonjour,

Pour faire la somme en valeur absolu d'une plage j'utilise la combinaison
des 2 fonctions SOMMEPROD et ABS en:
=SOMMEPROD(ABS(MaPlage))
En VBA, on calcul le SommeProd comme suit:
Application.SumProduct(MaPlage)
Mais dès que j'ajoute la fonction ABS ça ne l'accepte pas...
J'ai essayé Application.SumProduct(Application.Abs(MaPlage)) et
Application.SumProduct(Abs(MaPlage)) mais j'obtiens un message d'erreur.
Je suppose que mon problème se situe dans l'imbrication des 2 fonctions...

Auriez vous la solution ?

Merci d'avance
--
@+
HD

3 réponses

Avatar
LSteph
Bonjour,

Ceci semble aller, tu écriras =sab()

Function sab()

sab = [SumProduct((Abs(b2:b11)))]

End Function

'LSteph

On 29 juin, 14:50, "HD" wrote:
Bonjour,

Pour faire la somme en valeur absolu d'une plage j'utilise la combinaison
des 2 fonctions SOMMEPROD et ABS en:
=SOMMEPROD(ABS(MaPlage))
En VBA, on calcul le SommeProd comme suit:
Application.SumProduct(MaPlage)
Mais d s que j'ajoute la fonction ABS a ne l'accepte pas...
J'ai essay Application.SumProduct(Application.Abs(MaPlage)) et
Application.SumProduct(Abs(MaPlage)) mais j'obtiens un message d'erreur.
Je suppose que mon probl me se situe dans l'imbrication des 2 fonctions.. .

Auriez vous la solution ?

Merci d'avance
--
@+
HD
Avatar
LSteph
////ce qui reviendrait à ceci (autre ex enn macro)

Sub msab()
MsgBox Evaluate("SumProduct((Abs(b2:b11)))")
End Sub

A noter que les crochets dans l'exemple précédent se substituaient
à l'évaluation d'une expression entre guillemets.

En réalité le sommeprod VBA n'a pas a priori la même faculté
matricielle que celui d'Excel
l'astuce ici employée vise à l'utiliser dans VBA .

--
LSteph

On 29 juin, 14:50, "HD" wrote:
Bonjour,

Pour faire la somme en valeur absolu d'une plage j'utilise la combinaison
des 2 fonctions SOMMEPROD et ABS en:
=SOMMEPROD(ABS(MaPlage))
En VBA, on calcul le SommeProd comme suit:
Application.SumProduct(MaPlage)
Mais d s que j'ajoute la fonction ABS a ne l'accepte pas...
J'ai essay Application.SumProduct(Application.Abs(MaPlage)) et
Application.SumProduct(Abs(MaPlage)) mais j'obtiens un message d'erreur.
Je suppose que mon probl me se situe dans l'imbrication des 2 fonctions.. .

Auriez vous la solution ?

Merci d'avance
--
@+
HD
Avatar
HD
Un grand MERCI à toi LSteph

En plus avec 2 méthodes différentes... c'est sympa. ça permet toujours d'en
apprendre un peu plus... lol

J'ai réadapté un peu la fonction en :
Function msab(Col1, Li1, Col2, Li2)
MsgBox Evaluate("SumProduct((Abs(" & Cells(Li1,Col1).Address & ":" &
Cells(Li2, Col2).Address & ")))")
End Function



--
@+
HD