Je vais essayer de répondre dans l'ordre :
Mais je suis venu à me demander si cela n'était pas mieux, plus clair, de créer plusieurs modules avec les boucles conditionnelles etc et ensuite de les appeler dans le code du bouton
Oui et Non (ça commence bien hein ?)
Oui, tout ce qui est réutilisé dans le déroulement d'un programme doit être placé dans un module public.
Oui, toute portion de code qui est réutilisée dans une classe doit être factorisé dans une procédure ou une fonction.
Non, ce n'est pas optimisé d'utiliser des modules pour y mettre toutes les boucles ou partie de code devant être appelé.
L'objectif serait peut-être d'alléger le code et de le rendre plus structuré
Pour que le code soit allégé, si vous respectez les points "Oui" de ma réponse précédente, vous aurez déjà fait 80% du travail.
Pour les 20% restants, c'est les commentaires qui les font. Un code non commenté est un code mal fait.
Si vous ou quelqu'un d'autre revient sur le code et qu'il est obligé de se tapper 5000 lignes de code juste pour comprendre ou ça coince, il va lui falloir 3 jours (3 jours pour comprendre le code et 15 secondes pour mettre un point là ou il manquait)
De plus cela serait peut-être plus rapide et moins compliqué pour l'ordinateur ?
Non,
Pour optimiser du code (sur vba, c'est pas bien utile vu la lourdeur de ce code), il faut commencer par limiter les variables ou s'en reservir.
Il faut typer (donner un type) les variables pour qu'elles ai le même type que leur valeur future
Il ne faut pas utiliser le type "Object" et limiter le type "Variant".
Il faut se créer des classes pour les objets complexes au lieu d'utiliser le type Variant ou Object.
Il faut utiliser le mot clé "With" quand on a plusieur propriété à assigner à un objet :
Dim MaVoiture As Voiture
With MaVoiture
.Couleur="Bleu"
.Moteur="V16 Twin Turbo 12l " 'HOOOO C'EST BEAU DE REVER
End With
C'est aussi plus propre.
Utiliser les tableaux pour les collections d'objets
Il y en a encore beaucoup mais ça ne sert à rien de continuer.
En dessous de 10000 lignes de code, vous allez gagner que quelques milisecondes :)