Sommeprod avec du VBA

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

Aimedjie

XLDnaute Occasionnel
Bonjour,

J'ai un fichier à l'intérieur duquel, j'ai des fonctions SOMMEPROD(). Le problème est que j'ai tellement de SOMMEPROD() que me feuille bloque à chaque données que j'écris.

J'aimerais donc faire mon SOMMEPROD(), mais en programmation VBA. Je joins un exemple de mon fichier.

Merci.
 

Pièces jointes

Re : Sommeprod avec du VBA

J'ai eu le meme probleme, sauf que pour ne pas faire de sommeprod en VBA, j'ai stoppé le recalcul automatique à l'ouverture de la feuille, ainsi des que j'ai besoin du résultat, je clique sur la macro de mise à jour qui me fait le recalcul.

Il s'agit d'un bon moyen pour palier au temps de recalcul bien trop important.
 
Re : Sommeprod avec du VBA

Bonjour Aimedjie, jpmasclet,

Sorti de la solution de jpmasclet et si elle ne te convient pas, je ne crois pas que Vba va t'alléger la chose, bien au contriare...

Sommeprod est très gourmande en temps, surtout sur de longues plages. Dans ton cas Vba va devoir traduire, donc multiplier le temps de calcul....

J'ai ouvert ton fichier et pas bien compris, désolé.

A te lire si besoin.

Jean-Pierre
 
Re : Sommeprod avec du VBA

Bonjour Aimedjie, jpmasclet
Hello JP🙂

comme Jean-Pierre je n'ai pas compris la logique des calculs mais apparament il s'agit de comparer des données textuelles donc je propose l'idée suivante:
Sur la feuille Tableau:
1- Insertion/nom/Définir AN formule='=ANNEE($F$1)'
L'année est ainsi calculée qu'une fois sur changement de valeur de F1 et nom à chaque appel de sommeprod.

2-Dans les formules concaténer les données à comparer, par exemple pour la cellule $B$3 : ((AN&"A"&"X"=Code!$A$1:$A$7&"A"&"X")*$B$2) en formule matricielle à valider par CTRL+MAJ+ENTER

Cette méthode permet d'alléger un peu le systeme, excel ayant moins de tableaux à reproduire en interne pour en comparer les valeurs.

D'ailleurs sur la feuille code on peut imaginer un deuxième tableau à masquer éventuellement qui reproduirait les données concaténées ce qui pour les valeurs de la colonne B nous donnerait:

2008AX
2008B
2008CX
2008D
2007AX
2007BX
2007C

Ensuite faire référence à ce tableau dans les formules.

A+
 
Dernière modification par un modérateur:
- 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
14
Affichages
494
Réponses
5
Affichages
701
Retour