Longueur de code [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 1 août 2007
Statut
Membre
Dernière intervention
13 août 2007
-
Messages postés
4
Date d'inscription
mercredi 1 août 2007
Statut
Membre
Dernière intervention
13 août 2007
-
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

Messages postés
53
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
7 mars 2015
1
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
Messages postés
53
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
7 mars 2015
1
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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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
Messages postés
4
Date d'inscription
mercredi 1 août 2007
Statut
Membre
Dernière intervention
13 août 2007

Bonsoir,

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