Bonjour !
J'aurais aim=E9 conna=EEtre les fonctions permettant de=20
remplacer un caract=E8re par un autre dans le texte=20
r=E9cup=E9rer dans un TextBox :
Sub Test()
Dim Chaine As String
Chaine =3D TextBox1.Text
'ici il faudrait une fonction permettant de remplacer=20
un '.' par une ',' dans la String Chaine
End Sub
Cependant, s'il s'agit de s'assurer que ce qui est entré dans le TextBox est numérique, ce n'est pas toujours suffisant :
- Certaines personnes modifient les paramètres pour utiliser le point comme séparateur décimal
- La macro peut tourner sur un poste équipé d'un système autre que français.
Il vaut alors mieux utiliser la propriété "International" pour lire le séparateur actif, et remplacer lors de la frappe point ou virgule poar le séparateur :
Private Sub TextBox1_Change() If TextBox1 <> "" Then Sep = Application.International(xlDecimalSeparator) TMontant = Application.WorksheetFunction.Substitute(TMontant, ".", Sep) TMontant = Application.WorksheetFunction.Substitute(TMontant, ",", Sep) If Not IsNumeric(TextBox1) Then MsgBox "Le montant doit être un nombre positif !" ' Suppression du dernier caractère entré. TextBox1 = Left(TextBox1, Len(TextBox1) - 1) End If End If End Sub
Une adaptation est nécessaire pour accepter les nombres négatifs (accepter "-" en première position) :
If TextBox1 <> "" And TextBox1 <> "-" Then ... MsgBox "Le montant doit être un nombre !" ...
Bonjour ! J'aurais aimé connaître les fonctions permettant de remplacer un caractère par un autre dans le texte récupérer dans un TextBox :
Sub Test() Dim Chaine As String Chaine = TextBox1.Text 'ici il faudrait une fonction permettant de remplacer un '.' par une ',' dans la String Chaine End Sub
Merci pour votre aide
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
Il faut utiliser la fonction SUBSTITUER(), que l'on appelle à partir de VBA :
Cependant, s'il s'agit de s'assurer que ce qui est entré dans le TextBox est numérique, ce n'est
pas toujours suffisant :
- Certaines personnes modifient les paramètres pour utiliser le point comme séparateur décimal
- La macro peut tourner sur un poste équipé d'un système autre que français.
Il vaut alors mieux utiliser la propriété "International" pour lire le séparateur actif, et remplacer
lors de la frappe point ou virgule poar le séparateur :
Private Sub TextBox1_Change()
If TextBox1 <> "" Then
Sep = Application.International(xlDecimalSeparator)
TMontant = Application.WorksheetFunction.Substitute(TMontant, ".", Sep)
TMontant = Application.WorksheetFunction.Substitute(TMontant, ",", Sep)
If Not IsNumeric(TextBox1) Then
MsgBox "Le montant doit être un nombre positif !"
' Suppression du dernier caractère entré.
TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End If
End If
End Sub
Une adaptation est nécessaire pour accepter les nombres négatifs (accepter "-" en première position) :
If TextBox1 <> "" And TextBox1 <> "-" Then
...
MsgBox "Le montant doit être un nombre !"
...
Bonjour !
J'aurais aimé connaître les fonctions permettant de
remplacer un caractère par un autre dans le texte
récupérer dans un TextBox :
Sub Test()
Dim Chaine As String
Chaine = TextBox1.Text
'ici il faudrait une fonction permettant de remplacer
un '.' par une ',' dans la String Chaine
End Sub
Cependant, s'il s'agit de s'assurer que ce qui est entré dans le TextBox est numérique, ce n'est pas toujours suffisant :
- Certaines personnes modifient les paramètres pour utiliser le point comme séparateur décimal
- La macro peut tourner sur un poste équipé d'un système autre que français.
Il vaut alors mieux utiliser la propriété "International" pour lire le séparateur actif, et remplacer lors de la frappe point ou virgule poar le séparateur :
Private Sub TextBox1_Change() If TextBox1 <> "" Then Sep = Application.International(xlDecimalSeparator) TMontant = Application.WorksheetFunction.Substitute(TMontant, ".", Sep) TMontant = Application.WorksheetFunction.Substitute(TMontant, ",", Sep) If Not IsNumeric(TextBox1) Then MsgBox "Le montant doit être un nombre positif !" ' Suppression du dernier caractère entré. TextBox1 = Left(TextBox1, Len(TextBox1) - 1) End If End If End Sub
Une adaptation est nécessaire pour accepter les nombres négatifs (accepter "-" en première position) :
If TextBox1 <> "" And TextBox1 <> "-" Then ... MsgBox "Le montant doit être un nombre !" ...
Bonjour ! J'aurais aimé connaître les fonctions permettant de remplacer un caractère par un autre dans le texte récupérer dans un TextBox :
Sub Test() Dim Chaine As String Chaine = TextBox1.Text 'ici il faudrait une fonction permettant de remplacer un '.' par une ',' dans la String Chaine End Sub
"Maxime" a écrit dans le message de news:045e01c34f55$57808200$ Bonjour ! J'aurais aimé connaître les fonctions permettant de remplacer un caractère par un autre dans le texte récupérer dans un TextBox :
Sub Test() Dim Chaine As String Chaine = TextBox1.Text 'ici il faudrait une fonction permettant de remplacer un '.' par une ',' dans la String Chaine End Sub
"Maxime" <devidalmaxime@hotmail.com> a écrit dans le message de
news:045e01c34f55$57808200$a601280a@phx.gbl...
Bonjour !
J'aurais aimé connaître les fonctions permettant de
remplacer un caractère par un autre dans le texte
récupérer dans un TextBox :
Sub Test()
Dim Chaine As String
Chaine = TextBox1.Text
'ici il faudrait une fonction permettant de remplacer
un '.' par une ',' dans la String Chaine
End Sub
"Maxime" a écrit dans le message de news:045e01c34f55$57808200$ Bonjour ! J'aurais aimé connaître les fonctions permettant de remplacer un caractère par un autre dans le texte récupérer dans un TextBox :
Sub Test() Dim Chaine As String Chaine = TextBox1.Text 'ici il faudrait une fonction permettant de remplacer un '.' par une ',' dans la String Chaine End Sub