néné06
XLDnaute Accro
Bonsoir le Forum.
J’ai un problème, lors de la frappe de la touche « . » 🙁 keycode =110 :keyascii=46).
En effet, j’ai placé trois « barrages », ci_dessous, pour éviter la frappe du « . » Mais malgré cela, il arrive aléatoirement que le « . » entre sur ma textbox (TB4), ce qui provoquera une erreur de calcul.
Private Sub TB4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44, 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
Private Sub TB4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 110 Then KeyCode = 0
End Sub
Private Sub TB4_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 110 Then KeyCode = 0
End Sub
J’ai, par la suite, intégré cette routine, qui me corrige l’apparition aléatoire du « . », par la « , »
Jusqu'à présent, le bug est réparé, mais cette programmation est, je dirais, « pas très conventionnelle » !!!
Private Sub verif_tb4_pas_point()
a = Len(Me("TB4").Value)
For i = 1 To a
If Mid(Me("TB4").Value, i, 1) = "." Then
Me("TB4").Value = Left(Me("TB4").Value, i - 1) + ","
End If
Next i
End Sub
Quelqu’un aurait t-il une autre idée ou une explication à ce phénomène ?
voici le code TB4_Change
Private Sub TB4_Change()
If Me("TB4").Value = "" Then
Me("TB7").Value = Me("TB6").Value
ecrit_TB5_sur_usf5
affiche_ou_non_jh
Exit Sub
End If
On Error GoTo aa
If Me("ComboBox2").ListIndex < 6 Then
If Me("TB6").Value = "" Then Me("TB6").Value = "0"
verif_tb4_pas_point
Me("TB7").Value = CDbl(Me("TB6").Value) + CDbl(Me("TB4").Value)
End If
If Me("ComboBox2").ListIndex > 5 Then
verif_tb4_pas_point
Me("TB7").Value = CDbl(Me("TB6").Value) - CDbl(Me("TB4").Value)
End If
If CDbl(Me("TB7").Value) < 0 Then
Me("TB4").Value = ""
Me("TB7").Value = ""
Me("TB5").Value = ""
End If
If Me("TB4").Value <> "" And Me("TB4").Visible = True Then
verif_tb4_pas_point
valtb4 = CDbl(Me("TB4").Value)
End If
aa:
ecrit_TB5_sur_usf5
affiche_ou_non_jh
End Sub
D’avance merci !
J’ai un problème, lors de la frappe de la touche « . » 🙁 keycode =110 :keyascii=46).
En effet, j’ai placé trois « barrages », ci_dessous, pour éviter la frappe du « . » Mais malgré cela, il arrive aléatoirement que le « . » entre sur ma textbox (TB4), ce qui provoquera une erreur de calcul.
Private Sub TB4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44, 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
Private Sub TB4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 110 Then KeyCode = 0
End Sub
Private Sub TB4_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 110 Then KeyCode = 0
End Sub
J’ai, par la suite, intégré cette routine, qui me corrige l’apparition aléatoire du « . », par la « , »
Jusqu'à présent, le bug est réparé, mais cette programmation est, je dirais, « pas très conventionnelle » !!!
Private Sub verif_tb4_pas_point()
a = Len(Me("TB4").Value)
For i = 1 To a
If Mid(Me("TB4").Value, i, 1) = "." Then
Me("TB4").Value = Left(Me("TB4").Value, i - 1) + ","
End If
Next i
End Sub
Quelqu’un aurait t-il une autre idée ou une explication à ce phénomène ?
voici le code TB4_Change
Private Sub TB4_Change()
If Me("TB4").Value = "" Then
Me("TB7").Value = Me("TB6").Value
ecrit_TB5_sur_usf5
affiche_ou_non_jh
Exit Sub
End If
On Error GoTo aa
If Me("ComboBox2").ListIndex < 6 Then
If Me("TB6").Value = "" Then Me("TB6").Value = "0"
verif_tb4_pas_point
Me("TB7").Value = CDbl(Me("TB6").Value) + CDbl(Me("TB4").Value)
End If
If Me("ComboBox2").ListIndex > 5 Then
verif_tb4_pas_point
Me("TB7").Value = CDbl(Me("TB6").Value) - CDbl(Me("TB4").Value)
End If
If CDbl(Me("TB7").Value) < 0 Then
Me("TB4").Value = ""
Me("TB7").Value = ""
Me("TB5").Value = ""
End If
If Me("TB4").Value <> "" And Me("TB4").Visible = True Then
verif_tb4_pas_point
valtb4 = CDbl(Me("TB4").Value)
End If
aa:
ecrit_TB5_sur_usf5
affiche_ou_non_jh
End Sub
D’avance merci !