XL 2013 Transformer une formule en code VBA excel

jean_jack

XLDnaute Junior
Bonjour à tout le monde je reviens vers vous pour un nouveau soucis sur excel vba.

Je m'explique j'ai réussi à faire tourner sur excel (Obtenue grâce à un membre du forum) une formule qui marche nickel le seule soucis c'est que je répete la formule à plusieurs réprises dans mon classeur et vu que la formule prend en boucle des lignes vides lorsqu'elle tourne ça ralentit considérablement mon classeur, il me faut quasiment 1 à 3 minute voir plus pour exécuter une action.

J'aimerai donc transformer ma formule en code vba qui se lancerait au demarrage du classeur automatiquement .

Voici les deux formules en question.

=SOMMEPROD((BASEPROD!$C$2:$C$50000=C5)*(MOIS(BASEPROD!$A$2:$A$50000)=MOIS($E$1))*(ANNEE(BASEPROD!$A$2:$A$50000)=ANNEE($F$1))*(BASEPROD!$D$2:$D$20000))


=SOMMEPROD((BASEPROD!$C$2:$C$50000=C5)*(ANNEE(BASEPROD!$A$2:$A$50000)=$F$1)*(BASEPROD!$D$2:$D$50000))

Un coup de main de votre part serait le bienvenu, merci d'avance pour vos réponses.
 

jean_jack

XLDnaute Junior
Merci Roblochon pour ta réponse je te met en pièces jointes un exemplaire de mon fichier excel si tu veux bien y jeter un coup d'oeil .

le but de ma fonction c'est d'afficher des valeurs de ventes qui sont stockés dans un fichiers base en fonction de la date entrée et ceux par moi et par année.. Je te mets en pièce jointe un exemple du fichier sur lequel je veux travailler sachant que le fichier original est confidentiel je ne peux pas le mettre en ligne. Dans ce fichier la formule ne prend pas en compte toutes les lignes de la base alors qu'il faudrait quelle prenne la totalité des colonnes A B ET C de la base.
 

Pièces jointes

  • Copie de JEAN-JACK - Mise_A_JOUR.xlsx
    14.4 KB · Affichages: 10
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier ci-dessous, la base a été transformée en tableau structuré (Insertion/tableau), ce qui rend les formules de la feuille Données plus lisibles.
J'ai également ajouté une Feuille (TCD) avec un tableau croisé dynamique regroupant les ventes par années mois et client (A voir si ce ne serait pas une solution même partielle).

Dans la feuille Données en H2 la formule: DATE(ANNEE($D$2);MOIS($D$2);1) retourne le premier du mois de D2. Pour comparaison dans les formules Somme.Si.Ens.

Je vois qu'il y a un bouton 'Mise à jour'. Est-ce un bouton pour rafraîchir une requête sur une base de données? Si oui, il faudrait peut-être voir par Power-Query que vous pourriez installer sous xl 2013: Page de téléchargement C'est un requêteur puissant permettant beaucoup de choses.

Bon appétit
 

Pièces jointes

  • Copie de JEAN-JACK - Roblochon.xlsx
    20.5 KB · Affichages: 11

jean_jack

XLDnaute Junior
Merci pour ta réponse Roblochon je vais essayer de l'adapter à mon classeur original, même si un code vba pour éviter le ralentissement de mon classeur serait également le bienvenue.


Merci quand même vous faites du bon boulot les gars continuez comme ça !
 

Discussions similaires

Réponses
17
Affichages
865
Réponses
12
Affichages
225
Réponses
22
Affichages
689

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25