TextBox, imposer format numérique

Bonjour,

J'aurais besoin de votre aide afin d'imposer un format numérique dans la saisie d'une textbox, si celà n'est pas le cas, un MSGBOX d'erreur apparaîtras.

Je sais faire sa, le problème étant que j'ai énormément de textbox, pour que mon code soit plus propre je souhaiterais coder sa dans un module à part, hors je ne sais pas comment faire étant données que chaque textbox à son propre événement CHANGE...

Je vous remercie d'avance pour votre aide et reste disponible pour toutes questions. ^^

Cordialement,

Mica

Bonjour,

Essaye de créer une fonction (public) qui fait ce que tu sais faire et d'appeler cette fonction à chaque procédure.

Raja a écrit :

Bonjour,

Essaye de créer une fonction (public) qui fait ce que tu sais faire et d'appeler cette fonction à chaque procédure.

Bonjour,

J'ai en effet créer une fonction public dans un module, hors comment faire pour l’appeler dans ma feuilles avec un minimum de code pour que cet fonction s’exécute au changement d'une textbox dans la feuille voulut ?

Merci pour ton aide


Enfaite j'ai crée sa dans mon MODULE X :

Public Sub TB_NbTool_Change()
    If TB_NbTool > 1000 Then
        MsgBox "Format de la case non respecté !"
        TB_NbTool = 0
    End If
End Sub

Hors je ne sais pas comment l'exécuter dans ma feuille Y en fessant en sorte que l'événement soit prit en compte...

Re,

Ce n'est pas une fonction mais une procédure, enfin cela ne change pas grand chose. Si ce n'est trop confidentiel, veux-tu mettre en ligne ton fichier ? Il faut voir globalement comment est structuré ta macro. C'est plus facile pour un conseil efficace. Sinon, essaye d'appeler cette procédure dans les macro événementielles comme ceci :

Call TB_NbTool_Change

Quand tu parle de la macro évenementiel c'est entres les balise avec TB_NbTool_Change() par exemple ?

Car enfaite je souhaiterais éviter de les employer étant données que j'ai beaucoup de textbox, sa feras un code trop lourd... Je cherche un moyen d'imposer mon format à un maximum de textbox via un minimum de code enfaite...

Merci beaucoup pour l'aide.


C'est pas possible de mettre genre sa :

Private Sub TB_BodyDiameter_Change() 'Contrainte d'intégrité concernant la textbox TB_BodyDiameter

 On Error Resume Next
    If Not IsNumeric(TB_BodyDiameter) And Not TB_BodyDiameter = "" Then 'Si la textbox ne contient pas une valeur numérique ou vide alors
        MsgBox "Erreur ! Le champs BodyDiameter (db) doit être de format numérique" 'Le message d'erreur s'affiche
            TB_BodyDiameter = 0
    End If

End Sub

Private Sub TB_CornerRadius_Change() 'Contrainte d'intégrité concernant la textbox TB_CornerRadius

 On Error Resume Next
     If Not IsNumeric(TB_CornerRadius) And Not TB_CornerRadius = "" Then 'Si la textbox ne contient pas une valeur numérique ou vide alors
        MsgBox "Erreur ! Le champ Corner Radius (RC) doit être de format numérique" 'Le message d'erreur s'affiche
            TB_CornerRadius = 0
    End If
End Sub

Private Sub TB_CornerRadiusTaraud_Change() 'Contrainte d'intégrité concernant la textbox TB_CornerRadiusTaraud

 On Error Resume Next
    If Not IsNumeric(TB_CornerRadiusTaraud) And Not TB_CornerRadiusTaraud = "" Then 'Si la textbox ne contient pas une valeur numérique ou vide alors
        MsgBox "Erreur ! Le champ rayon du coin doit être de format numérique" 'Le message d'erreur s'affiche
            TB_CornerRadiusTaraud = 0
    End If
End Sub

Dans un module, puis de l'appeller dans une feuille avec une seul ligne ?

Quelqu'un serait-il disponible pour m'aider ? Merci d'avance.

Bonjour

Mica81 a écrit :

Je cherche un moyen d'imposer mon format à un maximum de textbox via un minimum de code enfaite...

Penches toi sur les modules de classe

Tu obtiendras plus facilement de l'aide en y joignant une copie de ton fichier (anonymisée si besoin)

Je vais me renseigner sur les modules de classes donc, je ne connais pas du tout...

Je reviendrais vous tenir au courant.

Merci beaucoup

Cordialement,

Mica

Re, Salut Banzai64,

Inspire-toi du code suivant :

Dans le module classeur :

Public var As Variant
Sub testTextBox()
    UserForm1.Show
    Call testFormat(var)
End Sub
Public Function testFormat(saisie As Variant)
    If IsNumeric(var) Then
        MsgBox "OK"
    Else
        MsgBox "KO"
    End If
End Function

Dans le module formulaire (il y a un objet formulaire avec un objet bouton de commande et un objet zone de texte) :

Private Sub CommandButton1_Click()
    Unload UserForm1
End Sub
Private Sub TextBox1_Change()
    var = TextBox1.Value
End Sub
Rechercher des sujets similaires à "textbox imposer format numerique"