Microsoft 365 Transformer un sommeprod en code vba

jean_jack

XLDnaute Junior
Bonjour tout le monde, je viens vous solliciter une nouvelle fois pour un soucis sur excel . Alors je m'expliques j'utilise actuellement une formule excel dans un tableaux pour mettre à jour des données et afficher des données qui sont stockés dans une base de données en fonction de la date entrée : SOMMEPROD((BASEPROD!$C$2:$C$50000=$C5)*(MOIS(BASEPROD!$A$2:$A$50000)=MOIS($V$1))*(ANNEE(BASEPROD!$A$2:$A$50000)=ANNEE($V$1))*(BASEPROD!$D$2:$D$50000)) voici la formule en question que je répète dans un certain nombre de cellules . La formule marche super bien le seule soucis c'est que vu que ma base de données est assez longue et est amenée à s’agrandir la formule qui tourne en boucle dans plusieurs cellules ralentit considérablement mon classeur. Je n'arrive plus à l'utiliser pendant deux min quand je veux faire une action. J'aimerai donc si possible remplacer la formule par un code vba pour rendre cela plus fluide.

Dans le fichier excel c'est la formule qui se trouve dans les colonnes E et F de la feuille 'RAPPORT' . Et l'idée c'est d'afficher les données en fonction de la date dans V1.

Si quelqu'un à une idée de comment faire ça serait génial.

Merci d'avance
 

jean_jack

XLDnaute Junior
Re bonjour,

Du coup j'ai pu transformer vos sommeprod en Somme.Si.Ens (plus rapide) après avoir modifié le Tableau de 'BASEPROD' réduit aux lignes occupée (2) et l'avoir nommé 'T_BaseProd'. Ce qui donne pour le tonnage du mois:
=SOMME.SI.ENS(T_BaseProd[TONNAGE];T_BaseProd[NOM];$C5;T_BaseProd[DATE];">" & FIN.MOIS($V$1;-1);T_BaseProd[DATE];"<=" & FIN.MOIS($V$1;0))

A mon avis si vous maintenez correctement vos tableaux, ces formules ne devraient pas être moins rapides que le vba.

Cordialement

Bonjour ,
J'ai une nouvelle question à vous poser à moins que tu ne penses qu'il faut que je crée un nouveau post la dessus. Mais en gros j'aimerais réaliser un graphique sur 12 mois glissant qui se mettrait à jour automatiquement sur les données tonnage qui se situent dans la feuille BASEPROD (T_BaseProd (tonnage)). Est ce que tu penses qu'il faudrait que je stock d'abord mes données par mois dans un tableaux qui se mettrait à jour automatiquement ou je peux directement indexer mon tableaux sur la base elle mème ? dans les deux cas si tu vois comment faire ton aide serait la bienvenue.

Merci d'avance pour ta réponse et bonne journée.
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
351
Réponses
7
Affichages
299
Réponses
10
Affichages
404

Statistiques des forums

Discussions
315 106
Messages
2 116 268
Membres
112 706
dernier inscrit
Pierre_98