Vba pour synthese

goldfinger13

XLDnaute Occasionnel
Bonjour à toutes et à tous.

Je vous sollicite sur un problème de durée d’exécution d'une synthèse
dans la réalité je travaille sur des fichier à 120 000 lignes minimum.
ma synthèse doit être effectuée sur un an à partir d'une date saisie
la plupart des formules constituant la synthèse SOMMEPROD ou RECHERCHEV
les temps d’exécution sont très longs (supérieurs à 40 secondes)
Je ne maîtrise pas assez VBA pour trouver une solution par macro.
C'est la raison pour laquelle je vous sollicite
merci d'avance pour votre aide.
 

Pièces jointes

  • synthese.xlsx
    25.5 KB · Affichages: 39
  • synthese.xlsx
    25.5 KB · Affichages: 49
  • synthese.xlsx
    25.5 KB · Affichages: 44

Herdet

Nous a quitté
Repose en paix
Re : Vba pour synthese

Bonjour,
Qu'entends-tu exactement par "synthèse" ?
D'après les descriptions, cela ressemble à des filtrages multiples sur des grands tableaux.

Si c'est le cas, pourquoi ne pas tenter d'utiliser des TCO (Tableaux Croisés Dynamiques) avec des filtres chronologiques ou personnalisés et éventuellement des graphiques dynamiques liés.

Ces outils d'exploitation de données sont très puissants et peuvent éviter du code VBA qui n'est pas forcément rapide sur des tableaux de plus de 120 000 lignes.
En tout cas, pour des grands nombres de formules, il vaut mieux éviter les SOMMEPROD.

Cordialement
Robert
 

goldfinger13

XLDnaute Occasionnel
Re : Vba pour synthese

bonsoir robert.
En fait le tableau de synthèse est un point de départ à partir duquel je vais générer plusieurs TCD la difficulté c'est que les données à traiter sont issues de sources différentes et ce tableau de synthèse me permet de compiler toutes les sources sur une seule pour ensuite analyser avec des tcd.
Mes recherches sont multicritères et je n'ai trouvé que sommeprod en solution pour trouver mes résultats

cordialement
 

Misange

XLDnaute Barbatruc
Re : Vba pour synthese

Bonjour

Bonjour

Je vois plusieurs possibilités importes d'amélioration si tu tiens à rester sous cette forme.

1) mets tes tableaux sous forme de vrais tableaux excel (onglet accueil/style/mettre sous forme de tableau). Ce n'est pas une raison esthétiques c'est que tes formules s'adaptent automatiquement au nombre de données réelles, en ne travaillant ainsi que sur le nombre minimum de cellules requis. (jamais des colonnes entières !!)
Voir ici : Ce lien n'existe plus

2) tu as des formules tout à fait inutiles : à partir du moment où tu entres une date au format excel, excel sait parfaitement en sortir le jour de la semaine, le mois et l'année. Tes colonnes mois année et jour semaine dans tes bases et dans ton tableau de synthèse ne servent donc à rien.
De même, le 14/8/2014 est toujours un jeudi ! donc dans ton sommeprod en D3, il ne sert à rien de sortir l'info qui correspond à la fois à la date doit être le 14/8 ET le jour doit être un jeudi.


Ton fichier simplifié en retour
 

Pièces jointes

  • synthese.xlsx
    20.9 KB · Affichages: 37
  • synthese.xlsx
    20.9 KB · Affichages: 47
  • synthese.xlsx
    20.9 KB · Affichages: 46

goldfinger13

XLDnaute Occasionnel
Re : Vba pour synthese

bonsoir à tous merci pour ta réponse j'ai transposé la méthode sur un fichier réel (recherche sur 2 bases différentes de 82 000 lignes chacunes et malheureusement je ne gagne pas de temps.
Concernant les formules sur les dates cela me génère des contraintes supplementaires pour les tableaux suivant (voir feuil1 dans piece jointe les tcd ne me font plus la synthese par mois ni par jour ).

Est il possible de créer dès le départ un TCD MULTI SOURCE car dans tous les cas j'aurais plusieurs sources (pour lesquelles je n'ai pas la maîtrise du format)

sinon qulequ'un pourrait il me proposer une solution VBA en tout cas merci pour l'attention que vous porterez à mon post.

cordialement gold
 

Pièces jointes

  • synthese2.xlsx
    28.6 KB · Affichages: 42
  • synthese2.xlsx
    28.6 KB · Affichages: 45
  • synthese2.xlsx
    28.6 KB · Affichages: 38

Misange

XLDnaute Barbatruc
Re : Vba pour synthese

POur la synthèse par mois et par jour dans le TCD quand tes dates sont affichées, clic droit sur une des dates/grouper et excel te propose de grouper mar mois, trimestre, années...
Un tuto sur les TCD ? :)
Ce lien n'existe plus (et les pages suivantes, notamment pour ce qui traite de la façon de grouper dans un TCD)

pour grouper suivant les jours de la semaine, dans ce cas il faut utiliser la formule joursem dans le tableau de synthèse pour faire la correspondance (ca renvoie le N° du jour de 1 à 7 mais dans le TCD tu récupères bien le nom du jour)

Tu peux faire des TCD multi sources mais ils ont des limites majeures et ils ne répondront pas à ta question.
si tu veux essayer quand même pour t'en convaincre :

Il faut que tu affiches le bouton "assistant tableau croisé dynamique" qui n'est pas affiché par défaut :
onglet fichier/options/personnaliser le ruban
dans la partie gauche en haut afficher toutes les commandes/Assistant TCD le faire passer dans un onglet personnalisé ou dans un nouveau groupe sur un onglet existant

bouton assistant
choisir plages de feuilles de calcul avec étiquettes/TCD Suivant
Un seul suivant
tu cliques sur le tableau de la base 1 avec ses entêtes surtout (tu mets le cuseur en haut à gauche du mot date et tu fais un premier clic puis un second)
ajouter
tu recommences pour le second tableau puis suivant et tu as ton TCD mais il ne répondra pas à tra demande, il ne permet pas de faire les tris par société.

Tu peux consolider tes tableaux en un seul par VBA mais attention au nombre de lignes si tu as de nombreux tableaux et de nombreuses lignes par tableau !. Ce problème a été maintes fois traité sur ce forum je te laisse regarder, là ce n'est plus l'heure du VBA pour moi :)
 

Pièces jointes

  • synthese.xlsx
    26.8 KB · Affichages: 43
  • synthese.xlsx
    26.8 KB · Affichages: 41
  • synthese.xlsx
    26.8 KB · Affichages: 52

Discussions similaires

Réponses
21
Affichages
422

Statistiques des forums

Discussions
312 291
Messages
2 086 843
Membres
103 399
dernier inscrit
Tassiou