Longueur de code

Résolu
titemi Messages postés 4 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 13 août 2007 - 1 août 2007 à 17:34
titemi Messages postés 4 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 13 août 2007 - 1 août 2007 à 20:48
Bonjour,

j'ai crée un formulaire multipage dans lequel je rentre des info qui servent à remplir 4 imprimés word.
Tout fonctionnait bien jusqu'à ce que j'ai la mauvaise idée de vouloir rajouter un cinquième imprimé! Je me trouve en face du message suivant : procédure trop longue!
l'aide de VB me dit qu'il faut fractionner le code. Bien mais comment?
Mon code fait 1530 lignes, est-ce trop
J'ai consulté un autre forum qui m'a répondu qu'il fallait factoriser
Je débute en VB et j'avoue que là je m'y perds!

C'est vrai que j'aurai peut-être du avec mon formulaire, stocker les infos dans un fichier excel pour ensuite aller les chercher pour remplir mes imprimés.

Mais bon, je n'ai pas vraiment envie de tout recommencer, surtout que cela fonctionnait bien.
Quelle solution Y-a-t-il

 

4 réponses

Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
1 août 2007 à 18:23
Hello Titemi
fractionner un code signifie écrire sur plusieurs procédures

exemple de code que je désire réduire

Command1_Click()
    Msgbox("Bonjour")
    Msgbox("Je suis un Exemple")
    Msgbox("Fin")
End Sub

**** Je peux fractionner en créant une procédure *****
**** La procédure est plus courte mais il en faut 3 ********

Command1_Click()

    Exemple00

    Exemple01
End Sub

Private sub Exemple00()
    Msgbox("Bonjour")
End Sub

Private sub Exemple01()



    Msgbox("Je suis un Exemple")



    Msgbox("Fin")
End Sub

cela répond à ta question ?
Dans le même esprit, renseigne-toi sur
Procédure / Fonction
Private/Public
et les variables que l'on transmet dans les parenthèses
3
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
1 août 2007 à 18:33
Factoriser ??

je garde le même exemple et je vais le "factoriser"

Command1_Click()
    Parler("Bonjour")
    Parler("Je suis un Exemple")
    Parler("Fin")
End sub

Private sub Parler(Texteàlacon as string)
msgbox Texteàlacon
End sub

ok, mon exemple est pas bien choisi mais, ce qu'il faut comprendre c'est que je crée une procédure à qui je soutraite des choses...
dans ton code, tu as certainement des choses en double à "factoriser" ou des fonctions à soutraiter

exemple d'utilisation de fonction:
C'est un exemple. Je n'ai pas traiter les erreurs possibles

Command1_click()
dim A as long
A=inputbox("Nombre")
msgbox cstr(ledouble(a))
End sub

Private function LeDouble (Nbas long)
LeDouble = Nb * 2
End function
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 août 2007 à 19:30
Sous VB6, ce message d'erreur peut n'avoir rien a voir avec la longueur du code d'un module ou même la longueur d'une procédure.

Il est possible que tu ais une ligne trop longue, la ligne de code en VB6 est limitée à 255 caractères.

Tu peux aussi avoir ce message si tu as plusieurs tableaux dynamiques de grande taille que tu redimentionne en permanance

Tu dis que tu as 1500 lignes de code, si c'est 1500 lignes dans une seule fonction, il est certain que ton code est mal organisé et tu vas pouvoir réflechir à comment réorganiser tout ça.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
titemi Messages postés 4 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 13 août 2007
1 août 2007 à 20:48
Bonsoir,

merci pour toutes vos réponses.
je vais essayer tout cela.
A bientôt
0
Rejoignez-nous