iStarOSX
XLDnaute Junior
Bonjour à tous,
Voila je me casse la tête sur mon problème de TextBox dans un USF au format numérique qui renseigne des cellules d'une feuille.
Voici le code que :
Ce code fonctionne "presque" bien, sauf que pour que soit pris en compte la dernière touche tapée dans le TextBox et avoir toute la valeur saisie dans la cellule de ma feuille, je suis obligé de taper une touche comme "espace". Sans cela le dernier chiffre saisi n'est pas pris en compte.
Exemple : si je tape "40", dans ma cellule la valeur sera "4" si je n’appuie pas sur une touche supplémentaire.
Malgré toutes mes recherches je ne trouve pas de solution.
Si quelqu’un pouvait m'aider, je l'en remercie d'avance.
PS : Je ne peux pas utiliser "Private Sub TextBox2_Change()" car j'ai un combobox qui peut faire changer la valeur du TextBox.
Voila je me casse la tête sur mon problème de TextBox dans un USF au format numérique qui renseigne des cellules d'une feuille.
Voici le code que :
Code:
Option Explicit
Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
Const entrees_entieres_permises = "0123456789" & vbCr & vbBack
Const Point = "."
Const Virgule = ","
Code:
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc(Point) Then
If InStr(TextBox2, Virgule) = 0 Then
KeyAscii = Asc(Virgule) & KeyAscii = 32
Else
KeyAscii = 0
End If
ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
KeyAscii = 0 & KeyAscii = 32
ElseIf InStr(TextBox2, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
KeyAscii = 0 & KeyAscii = 32
End If
If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
If ComboBox9.Value = "l/s & bar" Or ComboBox9.Value = "l/s & kPa" Then
Sheets("Unité").Range("B1").Value = TextBox2.Text
Sheets("Unité").Range("B2").Value = Sheets("Unité").Range("B1").Value / 1000 * 3600
End If
If ComboBox9.Value = "m3/h & bar" Or ComboBox9.Value = "m3/h & kPa" Then
Sheets("Unité").Range("B2").Value = TextBox2.Text
Sheets("Unité").Range("B1").Value = Sheets("Unité").Range("B2").Value * 1000 / 3600
End If
End Sub
Ce code fonctionne "presque" bien, sauf que pour que soit pris en compte la dernière touche tapée dans le TextBox et avoir toute la valeur saisie dans la cellule de ma feuille, je suis obligé de taper une touche comme "espace". Sans cela le dernier chiffre saisi n'est pas pris en compte.
Exemple : si je tape "40", dans ma cellule la valeur sera "4" si je n’appuie pas sur une touche supplémentaire.
Malgré toutes mes recherches je ne trouve pas de solution.
Si quelqu’un pouvait m'aider, je l'en remercie d'avance.
PS : Je ne peux pas utiliser "Private Sub TextBox2_Change()" car j'ai un combobox qui peut faire changer la valeur du TextBox.