[VBA]Textbox de Userform Contrôlé
Résolu
lml-mike
Messages postés
487
Statut
Contributeur
-
lml-mike Messages postés 487 Statut Contributeur -
lml-mike Messages postés 487 Statut Contributeur -
Bonjour,
Cela se passe sur 3 textbox, une contient une valeur affichée (non saisie), les deux autres sont saisissables.
Je cherche à effectuer un équilibrage de ces deux autres textbox par rapport à la première.
En gros, si 10 est affichée sur la première :
- si je saisi 5 sur la deuxième, la troisième affiche 5
- si je saisi 7 sur la deuxième, la troisième affiche 3
- si je saisi 6 sur la troisième, la deuxième affiche 4
- si je saisi 2 sur la troisième, la deuxième affiche 8
- si je saisi 10 sur la deuxième, la troisième affiche 0
etc...
J'ai déjà un code de contrôle de saisie, mais il me manque pour commencer la partie ou le chiffre rentré ne peut PAS être supérieur à la valeur de la première textbox.
Merci pour votre aide !
Cela se passe sur 3 textbox, une contient une valeur affichée (non saisie), les deux autres sont saisissables.
Je cherche à effectuer un équilibrage de ces deux autres textbox par rapport à la première.
En gros, si 10 est affichée sur la première :
- si je saisi 5 sur la deuxième, la troisième affiche 5
- si je saisi 7 sur la deuxième, la troisième affiche 3
- si je saisi 6 sur la troisième, la deuxième affiche 4
- si je saisi 2 sur la troisième, la deuxième affiche 8
- si je saisi 10 sur la deuxième, la troisième affiche 0
etc...
J'ai déjà un code de contrôle de saisie, mais il me manque pour commencer la partie ou le chiffre rentré ne peut PAS être supérieur à la valeur de la première textbox.
Private Sub UserForm_Initialize()
Text3.value = text1.value
Text2.value = 0
End Sub
Public Sub Text2_change()
Dim Prix As Single
Dim prixtot As Single
If Text2.Value = "" Then
Exit Sub
Else
Prix = Text2.Value
Text3.value = Text1.Value - Prix
End If
end sub
Private Sub Text2_Enter()
Text2.Value = ""
End Sub
Public Sub Text2_keypress(ByVal Keyascii As MSForms.ReturnInteger)
If InStr("1234567890.", Chr(Keyascii)) = 0 _
Or InStr(Text1.Value, ".") <> 0 And Chr(Keyascii) = "." Then
Keyascii = 0: Beep
End If
End Sub
'___________________________
Public Sub Text3_change()
Dim Prix As Single
Dim prixtot As Single
If Text3.Value = "" Then
Exit Sub
Else
Prix = Text3.Value
Text2.value = Text1.Value - Prix
End If
end sub
Private Sub Text3_Enter()
Text3.Value = ""
End Sub
Public Sub Text3_keypress(ByVal Keyascii As MSForms.ReturnInteger)
If InStr("1234567890.", Chr(Keyascii)) = 0 _
Or InStr(Text1.Value, ".") <> 0 And Chr(Keyascii) = "." Then
Keyascii = 0: Beep
End If
End Sub
Merci pour votre aide !
A voir également:
- [VBA]Textbox de Userform Contrôlé
- Fan controle - Télécharger - Optimisation
- Controle parental disney plus - Guide
- Centre de controle iphone - Guide
- Controle de compte utilisateur - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
Bon ben problème réglé lol !
Il faut simplement mettre une condition si la valeur est négative pour mettre la valeur maximale à la place sur la condition change ^^'
Il faut simplement mettre une condition si la valeur est négative pour mettre la valeur maximale à la place sur la condition change ^^'
Private Sub UserForm_Initialize()
text3.Value = text1.Value
text2.Value = 0
End Sub
Public Sub Text2_change()
Dim Prix As Single
Dim prixtot As Single
If text2.Value = "" Then
Exit Sub
Else
text3.Value = text1.Value - text2.Value
If text3.Value < 0 Then
text3.Value = 0
text2.Value = text1.Value
End If
End If
End Sub
Private Sub Text2_Enter()
text2.Value = ""
End Sub
Public Sub Text2_keypress(ByVal Keyascii As MSForms.ReturnInteger)
If InStr("1234567890.", Chr(Keyascii)) = 0 _
Or InStr(text1.Value, ".") <> 0 And Chr(Keyascii) = "." Then
Keyascii = 0: Beep
End If
End Sub
Public Sub Text3_change()
Dim Prix As Single
Dim prixtot As Single
If text3.Value = "" Then
Exit Sub
Else
text2.Value = text1.Value - text3.Value
If text2.Value < 0 Then
text2.Value = 0
text3.Value = text1.Value
End If
End If
End Sub
Private Sub Text3_Enter()
text3.Value = ""
End Sub
Public Sub Text3_keypress(ByVal Keyascii As MSForms.ReturnInteger)
If InStr("1234567890.", Chr(Keyascii)) = 0 _
Or InStr(text1.Value, ".") <> 0 And Chr(Keyascii) = "." Then
Keyascii = 0: Beep
End If
End Sub