-
1 pièce(s) jointe(s)
Au final,
J'ai complètement revu ton architecture logicielle (c'était pas dur, il n'y en avait pas).
J'ai adopté la convention M.m.r pour le N° de version qui est beaucoup plus courant (avec M = numéro de version Majeur, m = numéro de version mineur, et r = numéro de révision), le N° passe à 3.0.1 car j'ai fait une refont complète.
J'ai déporté la combo-box permettant de choisir le type de document dans le ruban (tu trouveras un onglet "Document" qui ne s'affiche que lorsque la première feuille est sélectionnée), cela permet une utilisation beaucoup plus légère de l'évènement Worksheet_Change.
J'ai masqué la feuille "TABLES", il n'y a aucune raisons de la présenter à l'utilisateur.
J'ai viré beaucoup de plage nommées inutiles en faveur de tables de donnée.
Avec Excel, il faut être malin, si on peut laisser le système faire les calculs, on le laisse faire (moins de programmation, donc moins de source de faire des conneries), en l'occurrence, le calculs des montants HT et TTC avec les différent taux de TVA se font sur la feuille "TABLE".
Mon code est certes plus gros, mais il est plus lisible, plus maintenable, plus efficace et plus rapide.
Au niveau du code:
J'ai viré les Application.ScreenUpdating, c'est maintenant obsolète.
Je n'utilise aucune globale.
J'ai programmé le ruban.
Seul subsiste la désactivation des évènements pendant que la feuille est mise à jour afin d'éviter d'appeler implicitement l'évènement Worksheet_Change en boucle.
PS: Mes commentaires ne sont pas agréables, mais quand c'est de la merde, je dit "ça pue", le but est de te faire progresser.
PS 2: Malheureusement, beaucoup de tutoriels et de conseils qui traînent sur internet, sont de la merde.
Ci-joint, ton classeur V3: Pièce jointe 623143