Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userform

carlitostyle

XLDnaute Junior
Bonjour à toute la communauté XLD.

J'ai un problème dans mon code mais je ne sais où. ou peut-être que c'est pas dans cet esprit que je dois coder.

J'aimerai en fonction de la valeur ( positive ou negative ) de ma textbox4. Afficher / marsquer le choix " optionbutton1". A savoir qu'il y a 3 optionbutton en tout. ( validée/refusée/validée mais a commander ).

J'ai essayé dans cet esprit. mais ça ne fonctionne pas. Qu'est-ce que vous en pensé parce que là je séche.




Code:
If UserForm1.TextBox4.Value < 0 Then 'condition : si la textbox "quantité restante" est negative
    
    UserForm1.OptionButton1.Visible = False
    
    Exit Sub
    End If
    
  If UserForm1.TextBox4.Value > 0 Then 'condition : si la textbox "quantité restante" est positive
    
    UserForm1.OptionButton1.Visible = True
    
Exit Sub
End If

Merci :)
 

carlitostyle

XLDnaute Junior
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

ca ne marche toujours pas, ni bruno ni si.

C'est peut-être que je l'insert mal...


Private Sub TextBox2_Change() 'au changement de quantité
If TextBox2.Value = "" Then 'condition : si la quantité n'est pas renseignée
q = 0 'q=0
Else 'sinon
q = CInt(TextBox2.Value) 'q est égal à la quantité converti en entier
End If 'fin de la condition
If lbpri = "" Then 'condition : si le prix n'est pas indiqué
p = 0 'p=0
Else 'sinon
p = CDbl(lbpri.Caption) 'p est égal au prix converti en double
End If 'fin de la condition
t = q * p 'définit la valeur du prix total t
lbtot.Caption = Format(t, "#,##0.00") 'récupère le calcul du prix total au fomar décimal

TextBox4.Value = -(q - sto)


TextBox3.Value = (q - sto) + stomin

If TextBox3.Value <= 0 Then 'condition : si la textbox "a commander" est negative

TextBox3.Visible = False
Label13.Visible = False

Exit Sub 'sort de la procédure
End If 'fin de la condition

If TextBox3.Value > 0 Then 'condition : si la textbox "a commander" est negative


TextBox3.Visible = True
Label13.Visible = True



Exit Sub 'sort de la procédure


End If 'fin de la condition
'------------------------------
If CDbl(TextBox4.Value) < 0 Then 'condition : si la textbox "restante" est negative


UserForm1.OptionButton1.Visible = False

Exit Sub
End If

If CDbl(TextBox4.Value) > 0 Then 'condition : si la textbox "restante" est positive


UserForm1.OptionButton1.Visible = True

Exit Sub
End If

End Sub


qu'est-ce que vous en pensez ?

Merci pour vos réponses :)
 

Si...

XLDnaute Barbatruc
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Re

pas commode avec des bouts de codes, des variables pas déclarées ...
à voir :
Code:
Private Sub TextBox2_Change()
  Dim q As Single, p As Single
  If Not IsNumeric(TextBox2) Then MsgBox "oups": Exit Sub
  q = CInt(TextBox2.Value)
  If lbpri <> "" Then p = CDbl(lbpri.Caption)
  t = q * p
  lbtot.Caption = Format(t, "#,##0.00")
  TextBox4 = sto - q
  TextBox3 = q - sto + stomin
  TextBox3.Visible = CDbl(TextBox3) > 0
  Label13.Visible = CDbl(TextBox3) > 0
  If CDbl(TextBox4) < 0 Then OptionButton1.Visible = CDbl(TextBox4) >= 0
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Bonjour SI,
Carlitostyle,
Si tes textboxbox ont des décimales il faut rajouter ceci selon le N° du textbox au début de la macro
autant que de textbox succeptible d'être en décimale

TextBox1.Value=Replace(TextBox1, ".", ",")
Bruno
 

carlitostyle

XLDnaute Junior
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Re

pas commode avec des bouts de codes, des variables pas déclarées ...
à voir :
Code:
Private Sub TextBox2_Change()
  Dim q As Single, p As Single
  If Not IsNumeric(TextBox2) Then MsgBox "oups": Exit Sub
  q = CInt(TextBox2.Value)
  If lbpri <> "" Then p = CDbl(lbpri.Caption)
  t = q * p
  lbtot.Caption = Format(t, "#,##0.00")
  TextBox4 = sto - q
  TextBox3 = q - sto + stomin
  TextBox3.Visible = CDbl(TextBox3) > 0
  Label13.Visible = CDbl(TextBox3) > 0
  If CDbl(TextBox4) < 0 Then OptionButton1.Visible = CDbl(TextBox4) >= 0
End Sub

Re, c'est parfait merci beaucoup. Oui c'est vrai je déclare moyennement mes variables mais je prendrai exemple sur le code que tu m'as fais. trés court et trés efficace.

Merci encore. Passe une bonne journée :)
 

carlitostyle

XLDnaute Junior
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Bonjour SI,
Carlitostyle,
Si tes textboxbox ont des décimales il faut rajouter ceci selon le N° du textbox au début de la macro
autant que de textbox succeptible d'être en décimale

TextBox1.Value=Replace(TextBox1, ".", ",")
Bruno

D'accord Bruno, merci pour ce conseil :) Bonne fin de journée !
 

carlitostyle

XLDnaute Junior
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Re;

j'ai inserer ce code, celui que tu as eu la gentilesse de faire : Cependant on me dis lorsque ma quantité ( manuellement inscrite dans la textbox2) est trops grande " dépassement de capacité ", je suis allé un peu voir sur les forum et on dit qu'il faut changer la variable q. en as LONG, cependant j'ai essayé et toujours le dépassement de capacité si j'inscrit un trop grand chiffre dans la textbox2


Ensuite deuxiéme petite chose, l'optionbutton1 disparait parfaitement, seulement si je change la quantité, enfin je la diminue, il ne réaparait pas. J'ai essayé de bidouiller le code mais en vain.

Pourrait tu m'éclairer ? merci encore.

Code:
Private Sub TextBox2_Change()
  Dim q As Single, p As Single
  If Not IsNumeric(TextBox2) Then MsgBox "oups": Exit Sub
  q = CInt(TextBox2.Value)
  If lbpri <> "" Then p = CDbl(lbpri.Caption)
  t = q * p
  lbtot.Caption = Format(t, "#,##0.00")
  TextBox4 = sto - q
  TextBox3 = q - sto + stomin
  TextBox3.Visible = CDbl(TextBox3) > 0
  Label13.Visible = CDbl(TextBox3) > 0
  If CDbl(TextBox4) < 0 Then OptionButton1.Visible = CDbl(TextBox4) >= 0
End Sub
[/QUOTE]



Code:
 If CDbl(TextBox4) < 0 Then OptionButton1.Visible = CDbl(TextBox4) >= 0
[/
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Re

bien entendu il suffit de
Code:
OptionButton1.Visible = CDbl(TextBox4) >= 0
.

avec A=B=C, si B= C alors A=True sinon A=False (la condition est donc traitée).
 

carlitostyle

XLDnaute Junior
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

Re

bien entendu il suffit de
Code:
OptionButton1.Visible = CDbl(TextBox4) >= 0
.

avec A=B=C, si B= C alors A=True sinon A=False (la condition est donc traitée).

Parfait ! j'ai remplacé

If CDbl(TextBox4) < 0 Then OptionButton1.Visible = CDbl(TextBox4) >= 0

par

OptionButton1.Visible = CDbl(TextBox4) >= 0


et maintenant ca reviens niquel :)


une toute derniére chose, pour ne pas abuser de ta patiente. Une idée pour enlever l'erreur " dépassement de capacité " lorsque j'inscrit une valeur trop grande dans ma textbox2.

:)
 

carlitostyle

XLDnaute Junior
Re : Afficher / masquer optionbutton . En fonction valeur textbox. Dans le meme userf

re

à tout hasard remplace CInt par CDbl (type integer peut poser problème avec des nombres à virgule)
Code:
q = CInt(TextBox2)

ça ne marche toujours pas dés que q > 100000 alors il y a un dépassement de capacité.

Aurai tu une autre idée ? sinon ce n'est pas grave. Tu m'as été d'une grande aide aujourd'hui !
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 417
Membres
103 204
dernier inscrit
alaa20dine01