XL 2013 Transformer une formule en code VBA excel

jean_jack

XLDnaute Nouveau
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.
 

Roblochon

XLDnaute Impliqué
Bonjour,

Sans fichier c'est difficile... Les sommeprod sont gourmands, c'est pour cela que puisque vous avez xl 2013 vous pouvez les remplacer par des Somme.Si.Ens, plus véloces.

Bonne journée
 

jean_jack

XLDnaute Nouveau
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.
 

Fichiers joints

Dernière édition:

Roblochon

XLDnaute Impliqué
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
 

Fichiers joints

jean_jack

XLDnaute Nouveau
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


Haut Bas