TextBox activeX en format monétaire

  • Initiateur de la discussion Initiateur de la discussion daniel1949
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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 😱):

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
 
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
 
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:
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 ?
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
286
Réponses
41
Affichages
709
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
166
Retour