Saisie d'un nombre avec décimales dans une zone de texte
6 réponses
Alain Ménard
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then
MsgBox "Ce nombre n'est pas valide", 48, "Erreur"
Me.Cote6.Text = ""
Cancel = True
End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean
' If Value Like "[+-]*" Then Value = Mid$(Value, 2)
IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*"
And _
Len( _
Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString
And _
Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _
GetDecimalNotation
End Function
Private Function GetDecimalNotation() As String
GetDecimalNotation = Format$(0, ".")
End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
"Alain Ménard" wrote in message news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _ Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*" And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
I choose Polesoft Lockspam to fight spam, and you? http://www.polesoft.com/refer.html
Alain,
Tu peux également utiliser IsNumeric() pour valider le contenu de ta
textBox...
"Alain Ménard" <amenard@vision-tech.fr> wrote in message
news:4577fa46$0$10071$426a74cc@news.free.fr...
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then
MsgBox "Ce nombre n'est pas valide", 48, "Erreur"
Me.Cote6.Text = ""
Cancel = True
End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean
' If Value Like "[+-]*" Then Value = Mid$(Value, 2)
IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*" And _
Len( _
Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString And _
Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _
GetDecimalNotation
End Function
Private Function GetDecimalNotation() As String
GetDecimalNotation = Format$(0, ".")
End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
I choose Polesoft Lockspam to fight spam, and you?
http://www.polesoft.com/refer.html
"Alain Ménard" wrote in message news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _ Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*" And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
I choose Polesoft Lockspam to fight spam, and you? http://www.polesoft.com/refer.html
Alain Ménard
Bonjour Philippe,
Merci beaucoup ta fonction fonctionne. Il fallait en plus retirer le on error resume next
Alain
"Philippe HALET" a écrit dans le message de news: 4577fcbc$0$5534$
Alain,
Tu peux également utiliser IsNumeric() pour valider le contenu de ta textBox...
"Alain Ménard" wrote in message news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _ Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*" And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
I choose Polesoft Lockspam to fight spam, and you? http://www.polesoft.com/refer.html
Bonjour Philippe,
Merci beaucoup ta fonction fonctionne. Il fallait en plus retirer le on
error resume next
Alain
"Philippe HALET" <info@hdsi.be> a écrit dans le message de news:
4577fcbc$0$5534$ba620e4c@news.skynet.be...
Alain,
Tu peux également utiliser IsNumeric() pour valider le contenu de ta
textBox...
"Alain Ménard" <amenard@vision-tech.fr> wrote in message
news:4577fa46$0$10071$426a74cc@news.free.fr...
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then
MsgBox "Ce nombre n'est pas valide", 48, "Erreur"
Me.Cote6.Text = ""
Cancel = True
End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean
' If Value Like "[+-]*" Then Value = Mid$(Value, 2)
IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*" And _
Len( _
Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString And _
Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _
GetDecimalNotation
End Function
Private Function GetDecimalNotation() As String
GetDecimalNotation = Format$(0, ".")
End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
I choose Polesoft Lockspam to fight spam, and you?
http://www.polesoft.com/refer.html
"Alain Ménard" wrote in message news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _ Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*" And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
I choose Polesoft Lockspam to fight spam, and you? http://www.polesoft.com/refer.html
jm
"Alain Ménard" wrote in message news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Hello,
Je te conseille la lecture de cet article de la FAQ: http://faq.vb.free.fr/index.php?question3
Voir aussi celui-ci: http://faq.vb.free.fr/index.php?question1
"Alain Ménard" <amenard@vision-tech.fr> wrote in message
news:4577fa46$0$10071$426a74cc@news.free.fr...
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Hello,
Je te conseille la lecture de cet article de la FAQ:
http://faq.vb.free.fr/index.php?question3
Voir aussi celui-ci:
http://faq.vb.free.fr/index.php?question1
"Alain Ménard" wrote in message news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Hello,
Je te conseille la lecture de cet article de la FAQ: http://faq.vb.free.fr/index.php?question3
Voir aussi celui-ci: http://faq.vb.free.fr/index.php?question1
Voila ce que j'utilise depuis toujours, sans soucis :
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",") If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage" KeyAscii = 0 End If End Sub
a+ Jean-Pol DAVID
"Alain Ménard" a écrit dans le message de news: 4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _ Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*" And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
Bonjour Alain,
Voila ce que j'utilise depuis toujours, sans soucis :
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And
KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
KeyAscii = 0
End If
End Sub
a+
Jean-Pol DAVID
"Alain Ménard" <amenard@vision-tech.fr> a écrit dans le message de news:
4577fa46$0$10071$426a74cc@news.free.fr...
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then
MsgBox "Ce nombre n'est pas valide", 48, "Erreur"
Me.Cote6.Text = ""
Cancel = True
End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean
' If Value Like "[+-]*" Then Value = Mid$(Value, 2)
IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*" And _
Len( _
Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString And _
Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _
GetDecimalNotation
End Function
Private Function GetDecimalNotation() As String
GetDecimalNotation = Format$(0, ".")
End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Voila ce que j'utilise depuis toujours, sans soucis :
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",") If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage" KeyAscii = 0 End If End Sub
a+ Jean-Pol DAVID
"Alain Ménard" a écrit dans le message de news: 4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not _ Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation & "*" And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <> vbNullString And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
Driss HANIB
salut Alain,
voici un bout de prog vu sur PSC aujourd'hui qui permet de gérer cela en 4 lignes
"Alain Ménard" a écrit dans le message de news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*"
And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString
And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
salut Alain,
voici un bout de prog vu sur PSC aujourd'hui qui permet de gérer cela en 4
lignes
"Alain Ménard" <amenard@vision-tech.fr> a écrit dans le message de
news:4577fa46$0$10071$426a74cc@news.free.fr...
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then
MsgBox "Ce nombre n'est pas valide", 48, "Erreur"
Me.Cote6.Text = ""
Cancel = True
End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean
' If Value Like "[+-]*" Then Value = Mid$(Value, 2)
IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*"
And _
Len( _
Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString
And _
Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _
GetDecimalNotation
End Function
Private Function GetDecimalNotation() As String
GetDecimalNotation = Format$(0, ".")
End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
"Alain Ménard" a écrit dans le message de news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*"
And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString
And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
Alain Ménard
Merci Driss
Alain
"Driss HANIB" a écrit dans le message de news: %
salut Alain,
voici un bout de prog vu sur PSC aujourd'hui qui permet de gérer cela en 4 lignes
"Alain Ménard" a écrit dans le message de news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*"
And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString
And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
Merci de vos éclaircissements ou idées
Alain
Merci Driss
Alain
"Driss HANIB" <dhanib@club-internet.fr> a écrit dans le message de news:
%23rwADXTHHHA.1816@TK2MSFTNGP06.phx.gbl...
salut Alain,
voici un bout de prog vu sur PSC aujourd'hui qui permet de gérer cela en 4
lignes
"Alain Ménard" <amenard@vision-tech.fr> a écrit dans le message de
news:4577fa46$0$10071$426a74cc@news.free.fr...
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une
zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les
nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then
MsgBox "Ce nombre n'est pas valide", 48, "Erreur"
Me.Cote6.Text = ""
Cancel = True
End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean
' If Value Like "[+-]*" Then Value = Mid$(Value, 2)
IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And
Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*"
And _
Len( _
Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString
And _
Not Value Like GetDecimalNotation & "*" And Not Value Like "*" &
_
GetDecimalNotation
End Function
Private Function GetDecimalNotation() As String
GetDecimalNotation = Format$(0, ".")
End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre
"Alain Ménard" a écrit dans le message de news:4577fa46$0$10071$
Bonjour à tous,
J'utilisais le code suivant pour contraindre à écrire un nombre dans une zone de texte, mais je viens de m'apercevoir que cela n'accepte pas les nombres avec décimales comme 9,1
Private Sub Cote6_Validate(Cancel As Boolean)
If Not IsNumber(Me.Cote6.Text) And Me.Cote6.Text <> "" Then MsgBox "Ce nombre n'est pas valide", 48, "Erreur" Me.Cote6.Text = "" Cancel = True End If
End Sub
Private Function IsNumber(ByVal Value As String) As Boolean ' If Value Like "[+-]*" Then Value = Mid$(Value, 2) IsNumber = Not Value Like "*[!0-9" & GetDecimalNotation & "]*" And Not
_
Value Like "*" & GetDecimalNotation & "*" & GetDecimalNotation &
"*"
And _ Len( _ Value) > 0 And Value <> GetDecimalNotation And Value <>
vbNullString
And _ Not Value Like GetDecimalNotation & "*" And Not Value Like "*" & _ GetDecimalNotation End Function
Private Function GetDecimalNotation() As String GetDecimalNotation = Format$(0, ".") End Function
J'hésite à changer la dernière fonction car je ne sais pas quoi y mettre