Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier
en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci,
mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input
de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier
en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci,
mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input
de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier
en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci,
mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input
de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Bonjour
Va voir chez Misange ici :
http://www.excelabo.net/xl/controles.php#fonctionbouton
Cordialement
Pascal
"Clicnik" a écrit dans le message de
news:Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier
en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci,
mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input
de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Bonjour
Va voir chez Misange ici :
http://www.excelabo.net/xl/controles.php#fonctionbouton
Cordialement
Pascal
"Clicnik" <Clicnik@discussions.microsoft.com> a écrit dans le message de
news: ACB41560-7626-4EEF-BD74-3FAFA6F1D02B@microsoft.com...
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier
en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci,
mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input
de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Bonjour
Va voir chez Misange ici :
http://www.excelabo.net/xl/controles.php#fonctionbouton
Cordialement
Pascal
"Clicnik" a écrit dans le message de
news:Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier
en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci,
mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input
de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informatio ns.
Quand je place le code ci-dessus derrière un textbox, je reçois bie n le
message indiquant qu'il faut taper du numérique (cela pourra être m odifier en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci, mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'i nput de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informatio ns.
Quand je place le code ci-dessus derrière un textbox, je reçois bie n le
message indiquant qu'il faut taper du numérique (cela pourra être m odifier en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci, mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'i nput de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informatio ns.
Quand je place le code ci-dessus derrière un textbox, je reçois bie n le
message indiquant qu'il faut taper du numérique (cela pourra être m odifier en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci, mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'i nput de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
Bonsoir,
Personnellement, plutôt qu'une fonction, j'utilise un module de classe nommé ClasseTextBoxes, avec une Sub unique pour
contrôler la "numéricité" de tous les TextBox.
Voici son code
Option Explicit
Public WithEvents TextBoxes As MSForms.TextBox
Private Sub Textboxes_Change()
Dim Sep As String, NatureInfo As String, Entier As Boolean, Indice As Integer, Partenaire As Control
Sep = Application.International(xlDecimalSeparator)
If TextBoxes <> "" Then
TextBoxes = Replace(TextBoxes, ".", Sep)
TextBoxes = Replace(TextBoxes, ",", Sep)
' Test si numérique et si la valeur est correcte
If Not IsNumeric(TextBoxes) And TextBoxes <> "-" Then
MsgBox "Valeur numérique uniquement!"
TextBoxes = Left(TextBoxes, Len(TextBoxes) - 1)
End If
End If
End Sub
On crée une classe, "TextBoxes" avec des événements, de type "MSForms.TextBox"
NB - L'événement "Exit" n'est pas disponible, c'est pourquoi j'utilise "Change", et je fais le contrôle caractère par
caractère au fur et à mesure de la frappe.
J'accepte toute valeur numérique, y compris décimale et/ou négative. Pour cela, j'utilise Replace (ou
Application.WorksheetFunction.Substitute avec Excel 97 ou EXcel Mac, basées sur VB5) pour remplacer le point et la
virgule par le "bon" séparateur décimal, afin que le IsNumeric ne renvoie pas False si on a entré un point au lieu d'une
virgule (ou l'inverse, selon les réglages de la machine).
J'accepte également "-" comme premier caractère, à cause des nombres négatifs.
Ensuite dans le "Initialize" du UserForm, je crée une matrice, TextBoxes, rattachée à la classe définie dans le module
de classe nommé ClasseTextBoxes, et je rattache tous les TextBox à la matrice
Option Explicit
Dim TextBoxes() As New ClasseTextBoxes
Private Sub UserForm_Initialize()
Dim c As Control, TextBoxesCount As Integer
' Création de la collection de TextBoxes, gérée par le module de classe
TextBoxesCount = 0
For Each c In Controls
If TypeName(c) = "TextBox" Then
TextBoxesCount = TextBoxesCount + 1
ReDim Preserve TextBoxes(1 To TextBoxesCount)
Set TextBoxes(TextBoxesCount).TextBoxes = c
End If
Next c
End Sub
Cela suffit à avoir un contrôle de "numéricité" pour tous les TextBox;
J'ajoute en + controle de saisie pour s'assurer que tous les TextBox du UserForm ont été renseignés.
+ d'infos sur ce contrôle de saisie ici : http://www.gaboly.com/VBA/FonctionControle.html
Fichier exemple : http://cjoint.com/?jtxmzcK1Vl
Bravo à ceux qui ont eu le courage de tout lire.Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci, mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonsoir,
Personnellement, plutôt qu'une fonction, j'utilise un module de classe nommé ClasseTextBoxes, avec une Sub unique pour
contrôler la "numéricité" de tous les TextBox.
Voici son code
Option Explicit
Public WithEvents TextBoxes As MSForms.TextBox
Private Sub Textboxes_Change()
Dim Sep As String, NatureInfo As String, Entier As Boolean, Indice As Integer, Partenaire As Control
Sep = Application.International(xlDecimalSeparator)
If TextBoxes <> "" Then
TextBoxes = Replace(TextBoxes, ".", Sep)
TextBoxes = Replace(TextBoxes, ",", Sep)
' Test si numérique et si la valeur est correcte
If Not IsNumeric(TextBoxes) And TextBoxes <> "-" Then
MsgBox "Valeur numérique uniquement!"
TextBoxes = Left(TextBoxes, Len(TextBoxes) - 1)
End If
End If
End Sub
On crée une classe, "TextBoxes" avec des événements, de type "MSForms.TextBox"
NB - L'événement "Exit" n'est pas disponible, c'est pourquoi j'utilise "Change", et je fais le contrôle caractère par
caractère au fur et à mesure de la frappe.
J'accepte toute valeur numérique, y compris décimale et/ou négative. Pour cela, j'utilise Replace (ou
Application.WorksheetFunction.Substitute avec Excel 97 ou EXcel Mac, basées sur VB5) pour remplacer le point et la
virgule par le "bon" séparateur décimal, afin que le IsNumeric ne renvoie pas False si on a entré un point au lieu d'une
virgule (ou l'inverse, selon les réglages de la machine).
J'accepte également "-" comme premier caractère, à cause des nombres négatifs.
Ensuite dans le "Initialize" du UserForm, je crée une matrice, TextBoxes, rattachée à la classe définie dans le module
de classe nommé ClasseTextBoxes, et je rattache tous les TextBox à la matrice
Option Explicit
Dim TextBoxes() As New ClasseTextBoxes
Private Sub UserForm_Initialize()
Dim c As Control, TextBoxesCount As Integer
' Création de la collection de TextBoxes, gérée par le module de classe
TextBoxesCount = 0
For Each c In Controls
If TypeName(c) = "TextBox" Then
TextBoxesCount = TextBoxesCount + 1
ReDim Preserve TextBoxes(1 To TextBoxesCount)
Set TextBoxes(TextBoxesCount).TextBoxes = c
End If
Next c
End Sub
Cela suffit à avoir un contrôle de "numéricité" pour tous les TextBox;
J'ajoute en + controle de saisie pour s'assurer que tous les TextBox du UserForm ont été renseignés.
+ d'infos sur ce contrôle de saisie ici : http://www.gaboly.com/VBA/FonctionControle.html
Fichier exemple : http://cjoint.com/?jtxmzcK1Vl
Bravo à ceux qui ont eu le courage de tout lire.
Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci, mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonsoir,
Personnellement, plutôt qu'une fonction, j'utilise un module de classe nommé ClasseTextBoxes, avec une Sub unique pour
contrôler la "numéricité" de tous les TextBox.
Voici son code
Option Explicit
Public WithEvents TextBoxes As MSForms.TextBox
Private Sub Textboxes_Change()
Dim Sep As String, NatureInfo As String, Entier As Boolean, Indice As Integer, Partenaire As Control
Sep = Application.International(xlDecimalSeparator)
If TextBoxes <> "" Then
TextBoxes = Replace(TextBoxes, ".", Sep)
TextBoxes = Replace(TextBoxes, ",", Sep)
' Test si numérique et si la valeur est correcte
If Not IsNumeric(TextBoxes) And TextBoxes <> "-" Then
MsgBox "Valeur numérique uniquement!"
TextBoxes = Left(TextBoxes, Len(TextBoxes) - 1)
End If
End If
End Sub
On crée une classe, "TextBoxes" avec des événements, de type "MSForms.TextBox"
NB - L'événement "Exit" n'est pas disponible, c'est pourquoi j'utilise "Change", et je fais le contrôle caractère par
caractère au fur et à mesure de la frappe.
J'accepte toute valeur numérique, y compris décimale et/ou négative. Pour cela, j'utilise Replace (ou
Application.WorksheetFunction.Substitute avec Excel 97 ou EXcel Mac, basées sur VB5) pour remplacer le point et la
virgule par le "bon" séparateur décimal, afin que le IsNumeric ne renvoie pas False si on a entré un point au lieu d'une
virgule (ou l'inverse, selon les réglages de la machine).
J'accepte également "-" comme premier caractère, à cause des nombres négatifs.
Ensuite dans le "Initialize" du UserForm, je crée une matrice, TextBoxes, rattachée à la classe définie dans le module
de classe nommé ClasseTextBoxes, et je rattache tous les TextBox à la matrice
Option Explicit
Dim TextBoxes() As New ClasseTextBoxes
Private Sub UserForm_Initialize()
Dim c As Control, TextBoxesCount As Integer
' Création de la collection de TextBoxes, gérée par le module de classe
TextBoxesCount = 0
For Each c In Controls
If TypeName(c) = "TextBox" Then
TextBoxesCount = TextBoxesCount + 1
ReDim Preserve TextBoxes(1 To TextBoxesCount)
Set TextBoxes(TextBoxesCount).TextBoxes = c
End If
Next c
End Sub
Cela suffit à avoir un contrôle de "numéricité" pour tous les TextBox;
J'ajoute en + controle de saisie pour s'assurer que tous les TextBox du UserForm ont été renseignés.
+ d'infos sur ce contrôle de saisie ici : http://www.gaboly.com/VBA/FonctionControle.html
Fichier exemple : http://cjoint.com/?jtxmzcK1Vl
Bravo à ceux qui ont eu le courage de tout lire.Voilà, j'aimerais pouvoir utiliser ce bout de code
Private Sub txt003_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(txt003.Value) Then
MsgBox "valeur numérique uniquement!"
Cancel = True
Else
Cancel = False
End If
End Sub
en tant que fonction.
J'ai un Userform avec près de 200 textbox pour la saisie d'informations.
Quand je place le code ci-dessus derrière un textbox, je reçois bien le
message indiquant qu'il faut taper du numérique (cela pourra être modifier en
date par après) et non de l'alpha numérique.
J'essaye d'en faire une fonction plutôt que de la recopier pour tous mes
textbox.
Je sais qu'il faut lui passer l'argument text003.value dans ce cas-ci, mais
il bloque sur Cancel (non défini) ou autre chose quand je modifie l'input de
la fonction.
Quelqu'un aurait une solution, svp ?
Merci d'avance
--
Cordialement,
Michel Gaboly
www.gaboly.com