Amélioration macro

Danybrett

XLDnaute Junior
Bonjour,

Ma macro, fonctionne, elle fait ce que je lui demande. Mais elle est extrêmement gourmande et compliquée (1800 lignes de codes) et donc pour éviter que le fichier crash ou que la macro mette 10min à s’exécuter, j'ai passé au début de ma macro en "actualisation manuelle". Comme ça la macro s’exécute en 5 secondes.

Mais du coup quand je viens actualiser les pages manuellement ou si je bascule ma macro en "actualisation automatique" à la fin, ba excel crash. Comme je suis un grand débutant en VBA, ma macro contient sans doute des choses horribles (comme 34 "SI" imbriqué :p) et j'ai beaucoup utilisé l'enregistrement de macro, il y a donc du code en commentaire dont je ne sais pas ce qu'il fait, mais ça fonctionne sans, donc je ne le mets pas :p.

J'aimerais savoir si quelqu'un a une idée d'amélioration pour ma macro afin de la fluidifier et qu'elle fonction sur n'importe quel PC même un pas tés puisant (exemple le mien :p).

Ma macro est basée sur un "Userforme" composé d'un menu déroulant où l'on vient choisir un nouveau produit.
Une fois le choix fait ce nouveau produit vient s'ajouter a liste avec un temps pour chaque opération et une date de début de l'opération.
Ensuite, nous avons plusieurs "centre de charge" qui viennent récupérer les dates et les temps qui les concernent.
la macro vient renseigner le numéro de semaine de chaque date puis elle additionne les temps pour chaque numéro de semaine identique et tout cela est renseigné dans un graphique de charge.

Désolé si ce n'est pas clair, j’espère qu'avec l'Excel fournit vous comprendrez mieux son fonctionnement. :)
 

Pièces jointes

  • Exemple tableau suiviV12.xlsm
    248.1 KB · Affichages: 52

Danybrett

XLDnaute Junior
Bonjours,

Je suis vraiment désolé de revenir vous voir, mais je suis face à 2 gros problèmes sur la maquette.:oops:

Le premier est que j'ai mis 2 "mises en forme conditionnelles" dans le tableau matrice:
- 1 pour mettre en bleu quand on vient écrire "T" (veut dire terminé) à la place des dates sur la feuille "planning"
- 1 pour mettre en orange quand on vient écrire "EC" (veut dire En-Cours) à la place des dates sur la feuille "planning"

Le problème c'est que quand j'entre un nouveau produit, dans "planning", je dois clicker sur une des dates puis faire "gérer les mises en forme conditionnelles" puis les mettre à jour, sinon elles ne fonctionnent pas :(

le second problème est que j'ai entré 30 produits (environ) dans "planning" et que je ne pouvais plus en entrer d'autres. A chaque fois que j'en entre un ou que j'actualise ou que je sauvegarde ba le fichier excel crash.
J'aimerais à terme pouvoir en entrer minimum 50.

Je reviens vers toi vgendron, car tu connais déjà mon fichier excel, si tu as des solutions j'en serais vraiment heureux :)
(Si quelqu'un d'autre à une solution, je suis preneur aussi :D)

Je transmets le fichier excel avec les 2/3 modifications que j'ai apporté.
 

Pièces jointes

  • Exemple tableau suivi Rev30 (4).xlsm
    243.6 KB · Affichages: 19

vgendron

XLDnaute Barbatruc
Hello

Désolé, mais je viens de faire le test..
1) j'ai écrit un T et un EC dans le produit AAA en feuille "Matrice" --->ils se colorent bien en bleu et Orange AUTOMATIQUEMENT
2) ensuite, dans feuille "Planning", je clique sur "Nouveau Produit", et sélectionne AAA
il est bien recopié avec EC et T, qui se colorent aussi automatiquement SANS que j'aille dans les règles de MFC
--> j'ai aussi vérifié par la suite que les règles de MFC sont bien recopiées

3) j'ai réussi à ajouter plus de 30 produits sans crash
4) par contre. quand on clique sur Nouveau Produit et qu'on sélectionne un produit très rapidement, j'ai un message qui me dit: "Mémoire insuffisante pour afficher en entier"
---> je pense que le USF n'a pas le temps d'initialiser complètement la liste de choix
ce qui n'empeche pas de poursuivre quand meme.

Donc... mystère...
 

Danybrett

XLDnaute Junior
En fait je crée la MFC sur "matrice" pour qu'elle soit recopiée dans "planning" et ensuite c'est dans "planning" que je viens écrire les "T" et les "EC". A chaque fois j'ai déjà des cases qui sont coloriées en bleu sans rien écrit dedans. Il faut à chaque produits créée que 'j actualise la MFC pour que cela marche. :(

Pour les 30 produits il faut savoir que j'ai un ordi I5 sous windows 7 sans carte graphique, je ne sais pas si ça peut jouer. :)
 

vgendron

XLDnaute Barbatruc
donc. je viens de faire le test dans l'autre sens
feuille matrice avec toutes les formules
nouveau produit dans feuille 'plannin"
j'écrist t et EC
et coloration instantannée. et pas de cellules bleue persistante ou étrangère..

pour le pc. normalement, la carte graphique n'apporte pas grand chose pour un simple excel.. je doute que ce soit l'origine du pb...
pour en etre sur, essaie, si tu peux, sur un autre pc..

autre piste.. avec ton fichier, j'ai régulièrement un message d'avertissement qui apparait:
"avertissemnet concernant la confidentialité.. bla bla bla.. contient des macros controle activeX etc etc.."
 

Danybrett

XLDnaute Junior
Étrange car moi j'ai T3 ; V3 ; X3 ; AB3 ; AD3 ; AE3 ; AH3 ; AJ3 ; AQ3 ; AT3 ; AX3 ; AZ3 ; BK3 ; BO3 qui sont en bleu quand je crée un nouveau produit et quand j'écrit un "T" ou un "EC" (sans avoir actualiser la MFC), ça les colores pas.

Je ne sais pas si je peux mais je te transmet un screen ainsi que le fichier Excel après la création d'un nouveau produit.

Je ne sais pas si ça peut jouer, mais j'ai Excel 2010. Même si je pense ça ne change rien.

Et le message d'avertissement c'est quand Excel sauvegarde (via la commande dans la macro je pense) que ce message apparaît. Mais comme j'ai fait de ce fichier un fichier approuvé (un truc dans le genre) et que j'active toutes les macros sans restriction, je n'ai plus ce message.
 

Pièces jointes

  • testt.png
    testt.png
    168 KB · Affichages: 30
  • Exemple tableau suivi Rev30 (4).xlsm
    252.4 KB · Affichages: 22

Discussions similaires

Réponses
12
Affichages
217
Réponses
7
Affichages
292

Statistiques des forums

Discussions
311 735
Messages
2 082 023
Membres
101 873
dernier inscrit
excellllll