macro sur mise à jour TCD : optimisation temps exécution

comi60

XLDnaute Nouveau
Bonjour,

Je galère avec une macro depuis un bout de temps. J'ai récupéré le travail de quelqu'un qui avait réalisé une macro qui fonctionnait mais très mal codé (enregistreur auto), du coup le temps d'exécution était très long (2min30) ce qui rendait l'usage du fichier laborieux!
Avec pas mal de modifications je suis arrivé au résultat de 35 sec mais je souhaiterai encore faire mieux! Je pense qu'il y a pas mal de temps à gagner sur l'actualisation des TCD mais je bloque dans l'optimisation.

Voila mon problème, sur un onglet j'ai un TCD avec pas mal de filtre et déjà mis en forme (je ne souhaite pas l'effacer et le refaire à chaque fois). Ce TCD va chercher les données dans un deuxième onglet. Cette onglet comporte pour chauqe code le stock en untiés dans une première série de colonne (de C à G dans l'exemple) et le stock en euros dans une deuxième série (de H à L).

L'objectif est qu'en cliquant sur un bouton on puisse soit afficher le stock en unités soit en euros. Je vous joins un petit fichier exemple pour illustrer mes propos.

Le vrai fichier comporte 133 colonnes et 12000 lignes. Le nombre de colonne à modifier dans le TCD est 54.

Ma question est : Existe-il une méthode beaucoup plus rapide que celle que j'utilise pour changer les colonnes sélectionnées dans le TCD?

Merci d'avance ceux qui voudront bien se pencher sur mon problème!
 

Pièces jointes

  • test.xlsm
    28.2 KB · Affichages: 62
  • test.xlsm
    28.2 KB · Affichages: 69
  • test.xlsm
    28.2 KB · Affichages: 62

Dugenou

XLDnaute Barbatruc
Re : macro sur mise à jour TCD : optimisation temps exécution

Bonjour,
Je ne suis pas un grand pratiquant de macros, donc je ne discuterai pas ton code en détail.
Par contre j'ai une autre idée et une observation :
l'idée ce serait d'afficher toutes les colonnes dans le TCD et de simplement masquer les colonnes non souhaitées par macro : on ne refait pas le tcd et on ne le recalcule pas : ça doit aller plus vite.
L'observation c'est que tes colonnes E font toutes référence à une seule Cellule $C$2 : si c'est voulu tu pourrais faire un champ calculé plutôt que de calculer puis afficher ces colonnes. Si c'est un accident je te le signale !
Cordialement
 

comi60

XLDnaute Nouveau
Re : macro sur mise à jour TCD : optimisation temps exécution

Bonjour,

Pour la Cellule $C$2 c'est une erreur en faisant le fichier test!
En tout cas merci pour l'astuce, je viens de gagner 20 secondes! Comme quoi les solutions qui semblent simples marche souvent très bien!
Bonne journée
 

Discussions similaires

Réponses
5
Affichages
250

Statistiques des forums

Discussions
312 492
Messages
2 088 908
Membres
103 982
dernier inscrit
krakencolas