Ou insérer le code?

Toutou

XLDnaute Occasionnel
Bonjour tout le monde,

je voudrais que la valeur d'un textbox varie en fonction de plusieurs facteurs, d'ou le code suivant:

Private Sub Form2_Change()

dim forms, vit as integer

forms = Form2.Value

If ComboBox3.ListIndex = 3 Then

If forms < 600 Then
vit = 155
ElseIf 600 <= forms < 650 Then
vit = 195
End If

End If

TextBox398.Value = vit

'Avec Form2 un textbox

j'ai également tapé mon code dans
Private ComboBox3_Change()
...
et

Private TextBox398_Change()
...

Cependant quand les conditions sont remplies rien ne se passent et la TextBox398 et comme bloqué, comme si
TextBox398.locked = true, alors que ce n'est pas le cas.

Ai-je tapé mon code à un mauvais endroit?
Ou y a t-il une erreur dans mon code???

D'avance merci
@ +
Toutou
 

Marc_du_78

XLDnaute Accro
Bonsoir Toutou, le Forum,

Je te réponds surtout afin de vérifier si moi j'ai bien compris, alors sois prudent.
Je pense que ce code doit être placé dans la feuille concernée et qu'il agira après un changement dans la dite feuille. mais...

Bon courage à toi et bonne soirée
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Toutou, Marc et Yvon,

C'est quoi cet événement ??? USF_Change ??? En tout cas, je ne l'ai pas sur XL97 !

Sinon, j'ai repéré quelquechose dans ton code (mais il faudrait savoir où il est placé) :

Private Sub Form2_Change()

dim forms, vit as integer

  forms = Form2.Value ' ????

  If ComboBox3.ListIndex = 3 Then

    If forms < 600 Then
      vit = 155
    ElseIf 600 <= forms < 650 Then ' ????
      vit = 195
    End If

  End If

  TextBox398.Value = vit

'Avec Form2 un textbox

Donc en premier, qu'est ce Form2.Value ? Et en second, tu ferais mieux de remplacer :
ElseIf 600 <= forms < 650 Then
par
Elsif forms < 650 car puisque tu as déjà testé la condition forms = 600 And forms < 650[/i][/b] ...

Amicalement
Charly

Message édité par: Charly2, à: 01/12/2005 03:13
 

Toutou

XLDnaute Occasionnel
Bonjour Charly, Marc, Yvon, le forum,

Charly, Form2 est un textbox (Cf la fin du code de mon 1er message). Je pense que le '.Value' n'est pas nécessaire, mais n'en étant pas certain, j'ai préféré le mettre afin de réccupérer la valeur comprise dans la textbox appelée 'Form2'.
Et pour le 'Elseif forms < 650 ' j'aurais aimé le mettre, mais ce que tu as vu n'est qu'un échantillon de 20 intervalles.
En ce qui concerne le 'USF_Change', j'ai vérifié dans mon précédent message, mais je ne l'ai écrit nulle part...


J'ai plassé mon code dans userform_initialize(), mais un message d'erreur m' anonce une 'incompatibilité de type'...

Marc quand tu parles de feuille, s'agit-il bien de feuille de calcul excel? je ne pense pas que ce soit la solution, car tout ce code correspond à des éléments compris dans un userform.

Merci à tous les trois
Bonne journée.
Je continue de chercher, quand j'ai une solution, je vous tiens au courant.
@ +
Toutou
 

Toutou

XLDnaute Occasionnel
Re bonjour à tous,

Ridicule, je suis ridicule, veuillez m'excuser.
J'ai trouvé ou était mon erreur, je n'avais pas pris en compte le bon combobox.
Cependant une erreure persiste, dans mon programme, il y a une vingtaine d'intervalle; mais seuls les 2 premiers fonctionnent:

forms=Form2.Value
if ComboBox2.ListIndex = 3 Then
If forms < 600 Then
vit = 155
ElseIf 600 <= forms < 650 Then
vit = 195
ElseIf 650 <= forms < 700 Then
vit = 250
ElseIf 700 <= forms < 750 Then
vit = 280
ElseIf 750 <= forms < 800 Then
....
.... etc

end if
end if

textbox398=vit

si j'entre une valeur inférieure à 600, vit=155
dans tous les autres cas, vit=195
Ai-je mal programmé mes intervalles?

merci d'avance,
@ +
Toutou
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Tu aurais du suivre ce que t'as dit Charly

essaies

forms=Form2.Value
if ComboBox2.ListIndex = 3 Then
If forms < 600 Then
vit = 155
ElseIf forms < 650 Then
vit = 195
ElseIf forms < 700 Then
vit = 250
ElseIf forms < 750 Then
vit = 280
ElseIf forms < 800 Then
....
.... etc

end if
end if

Tu n'as pas besoin de retraiter le cas plus grand puisqu'il est déjà eliminer par le if d'avant
 

Toutou

XLDnaute Occasionnel
Bonjour a tous,
désolé de la réponse un peu tardive, j'ai laissé ce programme en stand by quelques jours.
oui, merci Pascal, je ne l'avais pas compris tout de suite. j'avais peur que de cette manière certains cas allait etre occulter (et donc pas pris en compte) par d'autres avec la boucle if (j'espere que c clair).

Merci Chalry2, Pascal, Yvon et Marc.
Bonne semaine, @ +
Toutou
 

Discussions similaires

Statistiques des forums

Discussions
312 326
Messages
2 087 312
Membres
103 513
dernier inscrit
adel.01.01.80.19