Rapport de message :*
 

Re: vba format conditionnel avec plus de 3 condition mfc multiples de Didier

Titre du sujet : Re: vba format conditionnel avec plus de 3 condition mfc multiples de Didier
par myDearFriend! le 02/04/2008 21:45:05

Bonsoir mira57, le Forum,

Tout d'abord, j'ai bien reçu ton fichier Michel. Il est clair qu'il s'agit là d'un gros travail de ta part et d'un projet très complexe, mais j'ai bien peur que mon analyse ne réponde pas tout à fait à ton attente et de te décevoir...

Dans ton mail, tu m'informes que ce classeur est destiné à être partagé : avant toute chose, et sans vouloir freiner tes efforts, je tiens à t'informer qu'en général, les macros et les classeurs partagés ne font pas bon ménage! Je pense que tu devrais consulter notamment ce lien (à lire entièrement) : Utiliser un classeur partagé pour collaborer et en particulier la partie intitulée « Fonctionnalités non prises en charge dans un classeur partagé ».

Je le dit plus haut : ton projet est complexe. Il l'est même beaucoup trop et à mon avis, pas viable (désolé de te le dire comme ça). Mis à part toi, je pense qu'il est tout bonnement impossible à un tiers de s'approprier ce projet, de suivre et d'analyser en profondeur ce qui va ou ce qui ne va pas...

Pour info, j'ai passé une bonne partie de ma soirée d'hier et ce soir encore à tenter une plongée dans ton projet VBA : 6 modules de code et quelques procédures évènementielles de feuille, le tout relativement bien structuré cela dit (j'ai aussi réaffiché les 5 onglets qui étaient masqués)... Je ne puis que me rendre à l'évidence, l'entreprise m'est impossible.

J'ai toutefois plusieurs remarques sur lesquelles je t'invite à réfléchir et qui, j'espère, t'aideront à poursuivre dans la bonne voie :
[list]
[*]Il y a beaucoup trop d'évènements et macros qui s'enchainent en cascade sur une simple modification de cellule de l'utilisateur. Tous ces enchainements me paraissent impossible à gérer sainement et en particulier les macros de timing associées...
[*]Du coup, ces cascades d'évènements font que tu as dû recourir à la propriété Application.EnableEvents (False/True) "à tout va" pour désactiver des effets non souhaités... On ne le répètera jamais assez : cette propriété doit être évitée au maximum, car difficile à maitriser sans effet pervers... Ne cherche pas plus loin si la macro MFCmultiples ne réagit plus : un EnableEvents (False) issu d'une des macros ci-dessus en est la cause... Cela dit, au vu de tout ça, je ne puis que te conseiller de supprimer le recours à MFCmultiples dans ton projet, ça ne fait que rajouter de la complexité à ton projet déjà bien doté.
[*]Dans ton code, j'ai remarqué à plusieurs reprises la ligne : Workbooks("TimeSheet").Activate. Je ne sais comment tu as testé ton projet : pour info, une fois enregistré sur le disque dur, ton classeur se nomme TimeSheet.xls et c'est Workbooks("TimeSheet.xls").Activate qu'il te faudrait utiliser si tu ne veux pas de plantage.
[/list]
Voilà, j'espère que tu ne prendras pas mal ces remarques, mais que tu pourras en tirer quelque chose de positif (c'est là, mon intention en tout cas et c'est uniquement dans ce but que j'ai essayé d'y consacrer du temps).

Je te souhaite une bonne continuation dans ton projet.

Cordialement,