pb somme matricielle sous vba

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 !

wainso

XLDnaute Occasionnel
Bonjour le Forum
Débutant en vba je suis arrivé à rédiger un code me permettant de faire la somme matricielle et de renvoyer le résultat dans une cellule définie de la sorte
Range("G7").FormulaArray =

"=SUM(IF(MONTH(feuil2!$E$2:$E$11150)=G3,IF(feuil2!$p$2:$p$11150<>$V$5,IF(Feuil2!$N$2:$N$11150=$V$8,1,0))))+SUM(IF(MONTH(feuil2!$E$2:$E$11150)=G3,IF(feuil2!$p$2:$p$11150<>$V$5,IF(Feuil2!$M$2:$M$11150=$V$9,1,0))))"

Mon problème est qu'on ajoutant un nouveau argument, le code ne fonctionne plus et le message suivant apparaît:
"impossible de définir la propriété Formula arrray dans la classe range"
voici le nouveau code qui ne marche pas:

Range("G7").FormulaArray =
"=SUM(IF(MONTH(feuil2!$E$2:$E$11150)=G3,IF(feuil2!$p$2:$p$11150<>$V$5,IF(Feuil2!$N$2:$N$11150=$V$8,1,0))))+SUM(IF(MONTH(feuil2!$E$2:$E$11150)=G3,IF(feuil2!$p$2:$p$11150<>$V$5,IF(Feuil2!$M$2:$M$11150=$V$9,1,0))))+SUM(IF(MONTH(feuil2!$E$2:$E$11150)=G3,IF(feuil2!$p$2:$p$11150<>$V$5,IF(Feuil2!$M$2:$M$11150=$V$10,1,0))))"

C'est exactement le même que l'ancien auquel j'ai ajouté une autre sommation
Merci
 
Re : pb somme matricielle sous vba

Bonjour wainso
Pas de mystère : la formule est trop longue.
Nommer les plages utilisées dans la feuille Feuil2 résoudra le problème :
Code:
Range("G7").FormulaArray = "=SUM(IF(MONTH(x)=G3,IF(y<>$V$5,IF(t=$V$8,1,0))))+SUM(IF(MONTH(x)=G3,IF(y<>$V$5,IF(z=$V$9,1,0))))+SUM(IF(MONTH(x)=G3,IF(y<>$V$5,IF(z=$V$10,1,0))))"

ROGER2327
#4758


Lundi 16 Sable 138 (Saint Nui, exempt, SQ)
26 Frimaire An CCXIX
2010-W50-4T09:19:03Z
 
Re : pb somme matricielle sous vba

Salut wainso et le forum
Déjà, si tu utilisais les balises de code (#) on aurait la formule réelle, sans les espaces intempestifs
Ensuite, ta formule dépasse les 300 caractères, et il me semble avoir déjà rencontré un problème similaire sur ce forum : je crois qu'on est limité, pour les formules, à 255 caractères en VBA (mais pas sûr).

Ta formule peut être modifiée
Si j'ai bien tout compris Freud dans le texte, ça donne une formule du style
Code:
Range("G7").FormulaLocal = "=SOMMEPROD((MOIS(Feuil2!$E$2:$E$11150)=G3)*(Feuil2!$P$2:$P$11150<>$V$5)*((Feuil2!$N$2:$N$11150=$V$8)+(Feuil2!$M$2:$M$11150=$V$9)+(Feuil2!MP$2:$M$11150=$V$10)))"
Pour les lignes de 2 à 11150 de Feuil2 dont le Mois en E=G3 de feuil1, P est différent de V5 de feuil1, sommer N=V8 + M=V9 + M=V10

Donc, si toutes les conditions sont vraies, la ligne donnera 3 (V9=V10)
J'aurais plutôt vu un OU sur les 3 dernières conditions du genre
(mois(F2.E)=G3)*(F2.P=V5)*((F2.N=V8+F2.M=V9+F2.M=V10)>0)

Salut roger2327, tu m'a encore grillé 😉
A+
 
- 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

Discussions similaires

Réponses
2
Affichages
282
Réponses
5
Affichages
910
Réponses
10
Affichages
1 K
Réponses
5
Affichages
663
Réponses
5
Affichages
749
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Réponses
7
Affichages
829
Retour