• Initiateur de la discussion Initiateur de la discussion komodoe
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

komodoe

Guest
Bonjour à tous !

Je voudrais affecter le résultat d'une somme.si à une variable, en calculant ce résultat dans mon code vba... pas clair ?

Je m'explique : j'ai une colonne de n° de comptes, une colonne de montants. Je veux calculer la somme des montants des comptes dont le n° est supérieur à 6000000.

Je pourrais via vba inscrire la formule adéquate dans une cellule, affecter la valeur à une variable puis effacer la cellule mais j'aimerais faire le calcul directement dans le code vba...

Quelque chose dans ce genre :

Résultat = somme.si(Numéro_compte;">6000000";plage_montants)... mais en vba.

Pouvez-vous m'aider ?

Merci !!!
 
Re : Somme.si en VBA

Re-,
La déclaration de la variable n'est pas en cause.
Tes zones nommées ont-elles exactement le même nombre de lignes?
Dans ton exemple de 14H18, tes numéros de compte ont 6 chiffres, dans ta formule 8
A part ça....
mais je pencherai fortement pour nombre de lignes différentes
 
Re : Somme.si en VBA

@bhbh : Mes plages nommées ont bien la même dimension, je fais déjà des calculs avec sommeprod sur ces plages.

@Coriolan : je teste...

... Erreur d'exécution 13 !

Voici mon code :

Dim RES As Variant
RES = [SumProduct(Val_M_N * (range("Codes_comptes") > 600000000)* (range("Codes_comptes") < 800000000))]
MsgBox RES

Mauvaise syntaxe de ma part, peut-être ?
 
Dernière modification par un modérateur:
Re : Somme.si en VBA

Re-,
la syntaxe est bonne, du moins celle que je t'ai fournie.
N'y a-t-il pas une cellule non numérique?
si tu mets cette formule dans une cellule, que donne-t-elle?


Code:
=SOMMEPROD((Codes_comptes>600000000)*(Codes_comptes<800000000)*Val_M_N)
 
Re : Somme.si en VBA

Il y a une petite erreur : il faut un ";" avant Val_M_N pour qu'Excel fasse la somme sur la plage Val_M_N selon les 2 critères appliqués à la plage Codes_comptes, mais sinon cela renvoie bien le résultat attendu
 
Re : Somme.si en VBA

Bonjour

A la place de
Code:
RES = [SumProduct(Val_M_N * ([COLOR="Red"]range("[/COLOR]Codes_comptes[COLOR="red"]")[/COLOR] > 600000000)* ([COLOR="red"]range("[/COLOR]Codes_comptes[COLOR="red"]")[/COLOR] < 800000000))]

Essayes
Code:
RES = [SumProduct(Val_M_N * (Codes_comptes > 600000000)* (Codes_comptes < 800000000))]
 
Re : Somme.si en VBA

Bonjour
Bhbh ta formule est du même style que celle que j'indique

A part les valeurs de comparaison car j'ai pris la formule qui renvoyait une erreur (cf : message de 15h11)

Ou alors il y a quelque chose qui m'échappe

But not important 🙂
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
516
Retour