Sumif avec intervalle de valeur

Sumif avec intervalle de valeur - VB/VBA/VBS - Programmation

Marsh Posté le 18-10-2013 à 18:14:18    

Salut
 
Etant novice en VBA, je suis par la force des choses en train d'automatiser sur excel une application de contrôle de gestion, bref !
 
à un stade j'arrive à ca :
 
 A = Application.Sumif(Range("E8:E22" ), ">1", Range("F8:F22" ))
 
mais mon but est d'avoir la même chose mais cette fois avec un intervalle compris entre 1 et 5, et là mes amis je suis largué,
si vous pouvez m'aider ca serait génial :)

Reply

Marsh Posté le 18-10-2013 à 18:14:18   

Reply

Marsh Posté le 18-10-2013 à 18:56:09    

Je dirai :
 
A = Application.Sumif(Range("E8:E22" ), ">1 And <5", Range("F8:F22" ))
 
Au pire ça se fait très bien sans passer par une méthode préconçue.

Reply

Marsh Posté le 18-10-2013 à 21:26:19    

MERCI MAYBE.....,ms ca je l'ai dèjà essayer ca donne tjrs 0, essai le tu verras, ms merci qd meme

Reply

Marsh Posté le 18-10-2013 à 22:10:35    

Je n'ai en effet pas essayé mais au pire fait une boucle sur ta place de cellules et fais ta somme avec une condition if.

Reply

Marsh Posté le 21-10-2013 à 20:07:32    

 
           Salut,
 
           dans un tel cas, la première chose à faire est de tester directement la formule dans la feuille de calculs car,
           si le résultat n'est pas celui escompté, rien de sert de vouloir la coder en VBA vu qu'elle est fausse ‼ … http://forum-images.hardware.fr/icones/smilies/sarcastic.gif
 
           Ceci dit, la version d'Excel n'étant même pas indiquée, ma solution doit convenir à toute version.
 
           Cependant à partir de la version 2007, il y aurait certainement plus simple avec une nouvelle fonction de feuille de calculs.
           Lire l'aide intégrée concernant les nouvelles fonctions; pour les versions suivantes, soit jeter un œil
           dans l'aide aux fonctions mathématiques, soit se rencarder sur MSDN ou tout autre vecteur …
 
           Ma solution consiste à imbriquer deux  SI  - un par borne de l'intervalle - au sein d'une somme, le tout en tant que formule matricielle.
           Ceux ne sachant pas entrer une formule matricielle passent maintenant par la case de l'aide intégrée !
 
           Donc dans la feuille de calcul, voici la formule à entrer dans une cellule libre :  =SOMME(SI(E8:E22>1;SI(E8:E22<5;F8:F22;)))
 
           Une fois entrée en tant que formule matricielle, elle doit apparaître encadrée d'accolades, sinon c'est râpé !
           Si c'est bien une formule matricielle, vérifier le résultat avant de poursuivre …
 
           La cellule contenant cette formule matricielle doit être celle active avant de passer dans l'environnement VBA …
           Astuce :  ouvrir la fenêtre Exécution au sein de cet environnement et y taper  ? activecell.formula  puis valider.
 
           La formule en langage natif ('ricain) apparait sur la ligne du dessous :  sélectionner l'intégralité, la copier
           puis la coller dans une ligne de code VBA en l'encadrant entre  Evaluate("  et  " )  …
 
           Voilà c'est fini !  La formule matricielle de la feuille de calculs n'a plus lieu d'être …
           J'encourage vivement à consulter l'aide VBA intégrée concernant cette méthode  Evaluate  car elle est vraiment puissante !


Message édité par Marc L le 21-10-2013 à 20:35:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed