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.