XL 2016 Fichier Excel lent, macro nécessaire ?

clacou12

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je suis tout nouveau sur ce forum, et je suis aussi novice dans Excel. Jusqu’à maintenant, je me suis toujours débrouillé en vous lisant, en contournant bon nombre de problème que j’ai rencontré. Excusez-moi pour le pater qui suit, mais nécessaire pour une compréhension rapide du problème. Merci par avance à ceux qui prendront le temps de me lire.

Pour tout vous expliquer, je travaille sur un fichier qui me permettrait de visualiser l’ensemble des carnets de commande clients pour tous les projets de l’entreprise. Jusqu’à aujourd’hui, tout marchaient bien, j’ai mis au point toutes les formules et indicateurs pour 1 projet « projet test ». Je voulais maintenant intégrer tous les autres projets, mais je me suis rendu compte que le fichier rame énormément quand je lance la macro.

Voici comment marche le tableur :

Je rentre la nouvelle date en A2 (feuille PIC) : date du jour +7.

Cette date correspond au nombre de jour minimum pour une commande ferme (le client doit nous donner une commande ferme 7 jours avant la date d’expédition de celle-ci).

Ensuite je lance la macro (macro 1) qui supprime toutes les lignes de données de la feuille « extraction SAP » qui sont supérieures à la date A2.

Puis je colle m’a nouvelle extraction à la suite des données restantes (feuille « extraction SAP ») (l’extraction peut faire 4000 lignes)

Je répète l’opération tous les jours.

Cette manipulation me permet d’avoir l’historique des commandes ferme et une mise à jour des données quotidiennes.


L’exploitation des données se fait sur la feuille PIC :

Elle est composée tout en haut à l’horizontale d’un calendrier annuel. Il me donne automatiquement le jour de la semaine et le numéro de semaine. Une mise en forme conditionnelle met en couleur les semaines paires et les impairs pour une meilleure visibilité. J’ai également fait des groupements par mois pour mieux naviguer dans le tableur.

Sur le côté gauche : J’aurais l’ensemble des projets, j’ai donc mis un filtre vertical pour pouvoir les visualiser ou les cacher. Chaque projet peut avoir plusieurs références, le projet 1 en a 3. Chaque référence à deux lignes de recherche appelée (quantité de pièces ; prévisionnel ou ferme).

Au milieu, il y a un ensemble de formules RechercheV + Concatener qui me servent de recherche à deux critères (références et dates) pour afficher :

- les quantités commandées

- le type d’échéance (prévisionnel ou ferme)

L’extraction me donne le type d’échéance avec un numéro, 4 = prévision, 1 ou 9 = Ferme

Dans un deuxième temps, des mises en forme conditionnelles colore la case de la quantité commandée en fonction du type d’échéance (ferme ou prévisionnel) de la ligne d’en dessous.

Ferme = vert ; prévision = jaune

Le but de tout ce montage est seulement de connaitre les quantités commandées par jour, et savoir si la commande est ferme ou prévisionnelle.

Les lignes « prévisionnel ou ferme » ne me servent à rien d’autre, c’est pour cela que je ne les filtres pas avec les projets.


Problème : le fichier rame énormément et il n’y a que 2 projets pour le moment. Par la suite il y en aura une quinzaine avec Multi références.

Questions :

Est-ce normal que le fichier rame autant au lancement de la macro ?

Serait-il possible de remplir tout le milieu de la feuille avec le lancement d’une macro afin de gagner de la vitesse ? (c’est-à-dire éviter toutes les formules de rechercheV + concatener et les mises en forme conditionnelles).

Merci pour votre aide.

PS : je vous joint le fichier, pour voir les données de l'extraction, il faut regarder le projet 1 a partir du mois de février.

 

Pièces jointes

  • PIC - Macro.xlsm
    164.6 KB · Affichages: 32

clacou12

XLDnaute Nouveau
Non non, pas besoin des cumuls, je pensais que c'était plus facile de faire une première étape de cumul,
puis de transferé comme avant.
La deuxième feuille n'a pas vocation a être lu.
Si tu penses que c'est mieux de remplir direct en terme de vitesse de macro, je préfère aussi.
 

eriiic

XLDnaute Barbatruc
Que dire...
Un exemple réduit au minimum mais avec ce qu'il faut !
Le résultat attendu mis de façon claire sans que je le réclame, et pas de prise de tête pour contrôler le résultat de la macro !
Là tu charries, tu mets la honte à beaucoup de demandeurs ;-)
On en re-demanderait presque... :)

A-priori ça devrait être bon, je te laisse faire des contrôles plus exhaustifs.
Le prévisionnel mis est le 1er rencontré, sauf si 4.
eric

PS : j'ai mal posé la question 2 et tu as répondu à coté.
Tu as plusieurs lignes pour 35304656 au 01/03/2018.
Je voulais savoir si toutes les lignes de cette commande pour cette date étaient obligatoirement dans la même extraction.
Là j'ai considéré que oui, dans le cas contraire il faudrait que j'ajoute une lecture préalable des cellules pour cumuler.
 

Pièces jointes

  • PIC - Macro 2.xlsm
    81.3 KB · Affichages: 25
Dernière édition:

eriiic

XLDnaute Barbatruc
PS2 :
je viens de voir que tu faisais les totaux à droite.
Ajoute au début :
VB:
Application.Calculation = xlCalculationManual
et rétabli à la fin avec :
VB:
Application.Calculation = xlCalculationAutomatic
ça te fera un gain supplémentaire de tout calculer à la fin plutôt qu'à chaque écriture.
eric
 

Discussions similaires

Haut Bas