Mes codes sont enormes

Salut au forum,

dans mon projet que je vous présente, tous mes codes sont énormes. aidez moi à las réduire.

Merci.

16sesp.rar (195.37 Ko)

Bonsoir Jeunixe

pour pouvoir te répondre il faut donner les MDP d'acces

Pascal

Salut à tous,

excusez moi pour le code. Utilisez:

Nom d'utilisateur: Stéphane Vital

Mot de passe: vitale

Merci de me le rappeler Pascal

bonjour Jeunixe

je ne vois ce qu'il y aurais a réduire car il n'y a pas de .select et vu le nombre de textbox c'est peut être logique mais faudrai l'avis de plus aguerri autrement est ce que tout fonctionne car je trouve bizarre ce genre de code

With Sheets("ES")
TB1.Value = Range("B50").Value
TB5.Value = Range("B51").Value
TextBox4.Value = Range("B52").Value

d'habitude avec With Sheets XXXX il faut mettre un pont devant range encore un mystère informatique pour moi si cela fonctionne

Pascal

Salut Grisan29.

oui le code marche mais je ne saurais t'expliquer pourquoi ou comment. Je crois que tu es plus avancé que moi dans le domaine.

Bonsoir,

En effet ...

Pour gérer ce type de problématique, quelques conseils :

Axe1

  • identifier toutes procédures similaires
  • remplacer toutes ces procédures par une seule, en passant éventuellement en paramètre certains éléments
Exemple sur le UserForm "ES"
  • on remarque très rapidement la similitude entre "Private Sub CommandButton20_Click()" et "Private Sub CommandButton21_Click()" et les 30 (?) autres boutons (cf PJ "Analyse")
  • seul varie le n° de ligne => à passer en paramètre
  • remplacer ensuite les boutons "Valider1", "Valider2", ..., "ValiderN", par 1 seul bouton, qui appelle la procédure générique

Cf fichier en PJ, à tester, avec une première étape de ménage

A faire pour les autres UserForm (PFF, TP, autres ?)

Axe2

On retrouve le même code derrière toutes les TextBox_Change, à optimiser également, un peu plus complexe

Pour optimiser davantage, il faudrait créer des contrôles dynamiques (mais c'est beaucoup plus compliqué à comprendre, donc on abandonne pour l'instant)

Remarque complémentaire

L'instruction "With Sheets("ES")" fonctionne sans les points, tout simplement parce qu'elle ne sert à rien !

Exemple simple pour mieux comprendre :

With toto
       MsgBox "OK"
End With

MsgBox "OK" est complètement indépendant de toto

With Sheets("ES")
TB1.Value = Range("B50").Value

De même, "TB1..." et "Range ..." sont totalement indépendant de Sheets("ES")

Dans ce cas, le "Range" correspond à la feuille active, avec un point devant, le range s'appliquerait à l'onglet "ES".

(cf fichier "ExempleWith" en PJ)

Je te laisse poursuivre un peu le ménage. Si besoin, on verra ensuite.

Bonne soirée

Bouben

9analyse.xlsx (11.99 Ko)
14sesp-v0-1.zip (268.15 Ko)
11exemplewith.xlsm (21.93 Ko)

Salut à tous,

merci Bouben. Ton code est excellent. Il marche parfaitement bien. Je vais maintenant l'adapter à l'ensemble du projet et vous tenir informé pour la suite.

Je fais un clin d’œil à Grisan29 et à tou le frum

Salut Bouben

merci pour ton code, je l'ai bien adapté à mon projet et sa fonctionne bien.

Rechercher des sujets similaires à "mes codes enormes"