Titre du sujet : Re: transformation d'une valeur d'un TextBox en Euros par myDearFriend! le 18/10/2009 12:26:52
Bonjour Beatbles,
Tu trouveras en pièce jointe peut-être une façon de faire qui te conviendra...
Le module de code du Userform ressemble à ça :
Option Explicit
'---------------------------------------------------------------------------
' Auteur : Didier FOURGEOT (myDearFriend!) - www.mdf-xlpages.com
' Date : 18/10/2009
'---------------------------------------------------------------------------
Private Sub TextBox1_Enter()
TextBox1.Text = ValEuros(TextBox1.Text)
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = AutoriseCaract(KeyAscii)
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = ValEuros(TextBox1.Text, True)
End Sub
Private Sub TextBox2_Enter()
TextBox2.Text = ValEuros(TextBox2.Text)
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = AutoriseCaract(KeyAscii)
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim V As Currency
TextBox2.Text = ValEuros(TextBox2.Text, True)
'Calcul en TextBox3
V = ValEuros(TextBox1.Text) + ValEuros(TextBox2.Text)
TextBox3.Text = ValEuros(V, True)
'Report sur la feuille
Range("A1") = ValEuros(TextBox1.Text)
Range("B1") = ValEuros(TextBox2.Text)
Range("C1") = Range("A1") + Range("B1")
End Sub
Private Function ValEuros(ByVal T As String, Optional E As Boolean) As Variant
If E Then
ValEuros = Format(CCur("0" & Trim(T)), "0.00 ?")
Else
ValEuros = CCur("0" & Trim(Replace(T, "?", "")))
If ValEuros = 0 Then ValEuros = ""
End If
End Function
Private Function AutoriseCaract(ByVal C As Integer) As Integer
Select Case C
Case 46 'le point en virgule
AutoriseCaract = 44
Case 44, 48 To 57 'les chiffres et la virgule
AutoriseCaract = C
End Select
End Function
Private Sub CommandButton1_Click()
Unload Me
End Sub
Cordialement,
EDITION:
Bonjour Guy
Arf, je n'avais pas vu ton intervention... On est tout à fait d'accord sur le fond cela dit.
|