Lenteur d'une liste faite sur VBA

Bonjour à tous,

Après avoir refait tout mon fichier car je pensais qu'il avait un problème (lenteur d'ouverture, je dois attendre 3 bonnes secondes si je veux déplacer une cellule et perfois il plante quand je choisi une nature ou un foyer dans mes lintings).

Et je me suis rendu compte que la lenteur des choix sur mes listing du choix du foyer ou de la nature de travaux sur la feuille "LISTE DES TRAVAUX A PREVOIR" n'était qu'à cause de ces listes.

Cela m'étonne car vu ce que l'on peut faire avec VBA.

Y a t'il une solution ? Je vous met mon ficher sur dl free car il est trop gros même compréssé. le MP est PROJET11 (si il vous demande un nom d'utilisateur mettez ce que vous voulez)

http://dl.free.fr/brQdcybAj

Merci d'avance.

Cordialement.

Bonsoir,

pour moi la lenteur vient du re-calcul des valeurs, notamment avec des formules matricielles SOMMEPROD sur des plages importantes comme ici :

'LISTE DES TRAVAUX A PREVOIR'!$A$2:$A$9990

si tu peux réduire la plage, ce serait bien !

après je ne sais pas s'il y a d'autres améliorations possibles ?

C'est vrai que je pourrai la réduire mais lorsque je ne met pas les userform et du coup je rentre manuellement les natures travaux et les noms des foyers Rien ne rame.

Il faudrait aussi réduire la taille des zones liste et ctrx

J'ai tenté de modifier le fichier, mais curieusement je n'arrive pas à enregistrer mon travail.

Et les macros font aussi appel à un autre fichier !!!

Il faudrait refaire une mise à plat complète du fichier et éviter les liens vers d'autres classeurs.

Le truc cest que se sont des listes qui vont s'agrandir et que je ne serai plus le gérant de se tableau donc il doit être le plus automatique possible.

Et je ne comprend pas ou il y a des liens sur un autre fichier car justement j'ai tout refais et modifier ..

J'ai réduit mes sommeprod à 1000 au lieu du max(9990) et j'ai réduit aussi liste et ctrx.

Je remarque un plus de réactivité quand je choisi maintenant dans mes listing de la feuille "LISTE DES TRAVAUX A PREVOIR" mais il y a encore de la latence.

botidu60 a écrit :

Et je ne comprend pas ou il y a des liens sur un autre fichier car justement j'ai tout refais et modifier ..

Il semble que MENU fasse appel à des macros sur un autre fichier !! pourtant j'avais tout désactivé ce matin mais cela m'empêche toujours de sauvegarder les essais de modifications.

botidu60 a écrit :

Le truc cest que se sont des listes qui vont s'agrandir et que je ne serai plus le gérant de se tableau donc il doit être le plus automatique possible.

Il y a 2 façons de faire ...

  • tracer une bande horizontale colorée à la ligne 1000 et demander d'inclure des lignes au dessus si le nombre atteignait cette barre, c'est une façon simple de faire
  • plus professionnel, dans les formules, remplacer par exemple A1:A1000 par DECALER(A1;;;NBVAL(A:A)) qui permet d'ajuster la matrice au strict nécessaire; faire idem dans la définition des plages "liste" et "ctrx"

Est-il aussi utile d'avoir des années à 10 ans ? là aussi il faudrait élaguer pour gagner en réactivité.

Effectivement Menus et enregistré sur un autre classeur mais cil ne posait aucun problème. Car j'avais tout refais sauf les userform1 et 2 et c'est partir du moment ou je les ai faites que ça ramait.

Je vais essayé de faire ta version professionnel.

Et oui c'est utile de voir à 10 ans voir peut être même plus car le but de ce tableau et de faire un budget previsionnel à long terme ou l'on peut voir le budget de plusieurs année afin de réguler les budgets si nécessaire. Après il y a peût être d'autre façon de faire mais la je sèche ^^


Par contre je ne sais pas utiliser DECALER pour remplacer SOMMEPROD

DECALER ne remplace pas SOMMEPROD

Il faut laisser SOMMEPROD en place

Par contre, la formule SOMMEPROD fait appel à des matrices comme A1:A1000, c'est cela qui doit être remplacé par DECALER qui va définir une matrice à partir d'une cellule en la décalant et en l'augmentant.

Fais un petit essai bidon avant d'entreprendre les modifications du projet.

D'accord mais c'est trop compliqué, enfin je n'arrive pas à comprendre la logique pour l'appliquer en plus tu mettais NBVAL avec dedans. Je suis perdu

OK

Je suis en train de revoir ton fichier, pour moi la solution à laquelle je n'avais pas pensé immédiatement car j'étais axé sur la résolution des formules ... c'est tout simplement d'utiliser les tableaux croisés dynamiques !

Et pour une fois, la structuration de l'onglet "LISTE DES TRAVAUX A PREVOIR" est justement parfait pour cela !

Cela va d'un seul coup résoudre tous les problèmes posés !

C'est vrai que les tableaux dynamique croisé offre cette posibilité mais je ne sais pas du tout en créer c'est pour cela que je prends des exemples de base que je remets à ma sauce et du coup ce n'est pas la meilleur solution. Mais la ça fait 2h que j'essai de faire fonctionner décaler mais niet je sèche.

Et les tableaux dynamiques, je n'ai jamais compris la logique même pour les trucs basiques c'est pour ça que je ne l'utilise pas ^^

Avec un peu de chance j'ai réussi a faire un tableau dynamique croisé pour le budget d'une année mais pour avoir la même chose que celui ou il y a plusieurs années et surtout avec la même mise en page, je ne trouve pas. Bon je rechercherai plus tard je vais en réunion. Merci du tuyau en tout cas

cela ne rame plus !

reste à refaire le menu qui appelait un autre fichier

j'ai respecté le contenu de chaque onglet

la mise à jour d'un tableau croisé dynamique entraîne la mise à jour automatique des autres

https://www.cjoint.com/c/EByoNCJUgep

Oh mille milliards de mille sabords ça déchire ! Je te kiffe

Merci, vraiment

tout le plaisir est pour moi ... challenge relevé !

milliard est aussi un juron chti !

Rechercher des sujets similaires à "lenteur liste faite vba"