Façon d'écrire un code

Bonjour à tous,

C'est une question très bête mais je n'arrive pas à formuler ma question (rien qu'à voir le titre) afin de trouver une réponse sur intermet :

J'utilise le langage Vba à travers l'API de SW pour créer une interface donc j'ai un UserForm sur lequel j'ai des boutons. C'est dans la procédure de ces derniers que j'ai l'habitude de coder.
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. L'objectif serait peut-être d'alléger le code et de le rendre plus structuré.
De plus cela serait peut-être plus rapide et moins compliqué pour l'ordinateur ?

Je ne sais pas si ja' été clair mais j'aimerais des retour d'expérience afin de proposer la meilleure structure pour mon projet.

Merci

1 « J'aime »

Bonsoir,

Pour ma part, le userform n'a des codes en interne que pour interagir directement sur de la mise en page ou combiner des actions dans l'userform.

Les boutons appelant directement des modules dans mon code principal.

Pour le temps de traitement, je ne suis pas certain que ça change fondamentalement les choses sauf si le code doit faire des aller-retours permanent entre l'userform et le code principal.

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 :)

1 « J'aime »

Comme à votre habitude Yves.T, vos réponses sont complètes et claires merci beaucoup !

Bonne journée !