Aller au contenu

POurquoi ça sincremente pas


Messages recommandés

Posté(e)

Bonjour,

 

 

ci dessous un programme compris dans un modul de classe:

_________________________________________

Sub colonne(a, g, larg, e, valzoom1a)

lim = g + (a * larg) + (e * (a - 1))

If valzoom1a > lim Then

valzoom1a = g

ycol = 1

Else

ycol = ycol + 1

valzoom1a = g + (ycol - 1) * (larg + e) ' - (larg - e)

End If

End Sub

_________________________________________

 

J'ai un premier programme avec une boucle FOR i = 1 to a

dans lequel je fais appel au programme ci dessus compris dans un modul de classe.

 

Mon problème est le suivant:

 

la première fois que je rentre dans le programme COLONNE

valzoom1a n'est pas supérieur à lim

donc il passe à else ycol prend la valeur 1.

 

Cependant quand je passe pour la deuxième fois valzoom1a est toujours inférieur à lim donc je doit passer à else ycol devrait être egal à 2 et bin non.

 

POURQUOI?

 

J'ai l'impression que ycol se réinitialise.

 

A+

 

Posté(e)

Bonjour à tous,

 

Aprés vérification je me suis trés grandement compliqué la tache.

 

J'ai supprimé mon modul de classe et ajouté dans le corps de mon programme 3 à 4 expressions avec < ou > pour obtenir le résultat souhaité.

 

A+

Posté(e)

Il faut déclarer ta variable ycol en static sinon la sous-routine réinitialise la variable à chaque fois que ta routine principale l'utilise.

 

Pense à bien déclarer tes variables dans chaque routine

 

Sub colonne(a, g, larg, e, valzoom1a)

 Dim lim as Double
 Static ycol as Integer

 lim = g + (a * larg) + (e * (a - 1))
 If valzoom1a > lim Then
    valzoom1a = g
    ycol = 1
 Else
    ycol = ycol + 1
    valzoom1a = g + (ycol - 1) * (larg + e) ' - (larg - e)
 End If
End Sub

 

Maintenant, ta sous-routine enregistre la valeur de la variable à chaque utilisation de celle ci

 

Cordialement

 

Bonne journée

www.le-metal.net, sur la métallerie

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité