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

Comment coder un Somme si dans un array

  • Initiateur de la discussion Initiateur de la discussion fp22us
  • 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 !

fp22us

XLDnaute Nouveau
Salut Le forum,
J'utilise des formules matricielles, mais elles ralentissent considerablement l'utilisation d'excel. Pour palier ce probleme j'ai essaye de les coder en vba pour accelerer l'execution, mais je bloque en chemin.
Dans le fichier joint j'ai un resumé des ventes par departement, et par marque. Je voudrais en faire une analyse (sans passer par un tcd).
J'ai reussi a coder les formules matricielles, en vba, mais mon code copie les formules dans la feuille ce qui lorsqu'on a beaucoup de donnees ralentit excel. Je voudrais donc inscrire le resultat dans un array sous vba, puis ensuite copier le resultat dans les cellules g3:h6.

Si vous avez des solutions, je suis preneur.

Merci beaucoup pour votre aide.
 

Pièces jointes

Re : Comment coder un Somme si dans un array

Bonjour

Pourquoi ne pas utiliser SOMMEPROD ?
=SOMMEPROD((Dept=1)*(Marque="A")*Quantite)
renvoie : 10

Ou plus simple
en colonne G
=SOMMEPROD((Dept=$F3)*(Marque=$G$2)*Quantite)
et en colonne H
=SOMMEPROD((Dept=$F3)*(Marque=$H$2)*Quantite)

Ces formules ne nécessitent pas de validation matricielle.

Saisir ces formules en ligne 3 puis recopie vers le bas.
 
Dernière édition:
Re : Comment coder un Somme si dans un array

Si vraiment tu veux le faire en macro, voici une macro qui le fera:

Code:
Sub MacroFormule()
With Range("G3:G6")
    .FormulaR1C1 = "=SUMPRODUCT((Dept=RC6)*(Marque=R2C7)*Quantite)"
    .Value = .Value
    With .Offset(, 1)
        .FormulaR1C1 = "=SUMPRODUCT((Dept=RC6)*(Marque=R2C8)*Quantite)"
        .Value = .Value
    End With
End With
End Sub
 
Re : Comment coder un Somme si dans un array

Salut TempusFugit,
Merci pour ta reponse ultra rapide.
En fait je pensais mettre les resultats dans une matrice sous vba, puis eventuellemt afficher les resutats dans des des cellules. Je vais tester ta solution, ca devrait deja bien accelerer les choses.
Merci encore.
Fp22us
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…