TextBox activeX en format monétaire

daniel1949

XLDnaute Occasionnel
Bonjour le forum,
Je n'arrive pas à inscrire des chiffres en format € dans un textBox de formulaire.
J'ai essayé :

TextBox2 = VBA.Format(TextBox2.Value, " 0.00 €")

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2.Value = Format(Replace(TextBox2.Value, ".", ","), "#0.00 €")
End Sub

Private Sub TextBox2_Change()
TextBox2.Value = Replace(TextBox2.Value, ".", ",")
TextBox2.Value = Format(TextBox2.Value, "0#.00 €")
End Sub

Private Sub TextBox2_Change()
On Error Resume Next
TextBox2 = Replace(TextBox2, ".", ",")
If Not IsNumeric(TextBox2) Then
TextBox2.Text = Left(TextBox2, Len(TextBox2) - 1)
End If
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox2
If IsNumeric(.Text) Then
TextBox2.Text = Format(TextBox2.Text, "# ###.00 €")
End If
End With
End Sub

----------------------------------------------------------------------------------------
Private Function FormatEuro(ByVal Txt As String) As String
Txt = Replace(Replace(Replace(Txt, ".", ","), " €", ""), " ", "")
FormatEuro = Format(CDbl(Txt), "### ### ##0.00 €")
End Function

Private Sub TextBox2_AfterUpdate()
TextBox2.Text = FormatEuro(TextBox2.Text)
TextBox2.SelStart = Len(TextBox2.Value) – 1
End Sub
----------------------------------------------------------------------------------------
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = CheckLaSaisie(TextBox2, KeyAscii)
End Sub
----------------------------------------------------------------------------------------
Function CheckLaSaisie(Textbox As MSForms.Textbox, ByVal Char As Integer)
Dim SepDec As String
SepDec = Application.International(xlDecimalSeparator)
If Char = 44 Or Char = 46 Then
If InStr(1, Textbox, SepDec, vbTextCompare) > 0 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Asc(SepDec)
End If
Else
If Char < 48 Or Char > 58 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Char
End If
End If
End Function
--------------------------------------------------------------------------------
Et bien d'autres encore sans résultat.

Merci de bien vouloir vous pencher sur mon problème.
Bonne journée.
Daniel


NB : Je suis sous Vista. Il s'agit d'un TextBox de formulaire et non USF.
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : TextBox activeX en format monétaire

Bonjour à tous

A tester, en fonction des options régionales, mais sur le Lostfocus (sinon, je ne sais pas faire :eek:):

Code:
Private Sub TextBox1_LostFocus()
On Error GoTo suite
TextBox1.Value = Format(TextBox1.Value, "#,##0.00€")
suite:
TextBox1.Value = Format(CDbl(Replace(TextBox1, ".", ",")), "#,##0.00€")
End Sub
 

PMO2

XLDnaute Accro
Re : TextBox activeX en format monétaire

Bonjour,

Je n'arrive pas à inscrire des chiffres en format € dans un textBox de formulaire.

Votre demande est ambiguë et j'ai apporté une réponse pour un TextBox de FORMULAIRE.
Je constate qu'il s'agit d'un ActiveX et ma réponse est forcément inadaptée dans ce cas.

J'ai rectifié en conséquence. Essayez avec la nouvelle pièce jointe.

Cordialement.

PMO
Patrick Morange
 

Fo_rum

XLDnaute Accro
Re : TextBox activeX en format monétaire

Bonjour,

avec le même évènement :
Code:
Private Sub TextBox1_LostFocus()
  TextBox1 = Replace(TextBox1, ".", ",")
  If IsNumeric(TextBox1) Then TextBox1 = Format(CDbl(TextBox1), "0.00 €")
End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : TextBox activeX en format monétaire

Qu'est-ce que ça veux dire ça ne marche pas ?
Est-ce que ça donne un autre résultat que celui attendu ?
Dans ce cas que contient Txt ? Que voulait-on obtenir ? Qu'obtient-on à la place ?
Est-ce que ça plante ? Quel est dans ce cas le message d'erreur ?
 

MJ13

XLDnaute Barbatruc
Re : TextBox activeX en format monétaire

Re à tous

Sinon on peut partir sur cela avec un configuration normale du clavier avec la virgule:

Code:
Private Sub TextBox1_LostFocus()
TextBox1.Value = Replace(TextBox1.Value, ".", ",")
TextBox1.Value = Format(TextBox1.Value, "#,##0.00 €")
End Sub
 

daniel1949

XLDnaute Occasionnel
Re : TextBox activeX en format monétaire

Merci MJ13 sauf que le chiffre est devenu du texte...
Comme j'ai un bouton pour transférer ces données je lui ai collé : (...) Range("J3").Value = CDbl(TextBox2.Value)
et ça marche !!!
Merci à tous.
Daniel
 

Discussions similaires

Réponses
6
Affichages
287

Statistiques des forums

Discussions
312 496
Messages
2 088 974
Membres
103 995
dernier inscrit
Flodk