Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Somme.si en VBA

  • 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…