Comment creer un NUMBERBOX ?

Bonjour,

J'ai un formulaire VBA comprenant une soixantaine de champs, et je suis très ennuyé par les TEXTBOX qui doivent gérer des données numériques ou bien des TEXTBOX vides . Effet lorsque les données sont saisies dans le formulaire et que je souhaite les transmettre dans la base de données grâce à un bouton VALIDER,j'ai tout un tas d'erreur du au fait qui si rien n'est saisi dans un champ précis du formulaire,la cellule censée être vide contient en réalité une une information de texte.

Mon souhait est d'avoir simplement une NUMBERBOX qui transmettra uniquement des valeurs numériques

Merci d'avance !

Salut gsi,

je n'ai pas testé mais tu devras sans doute passer par une fonction de conversion : CInt, CDbl, CLng.

A+

Est il possible de créer un OBJET NUMBERBOX qui éviterait de devoir justement spécifier cette conversion ? Il suffirait alors de choisir dans les propriétés de la NUMBERBOX le types de valeurs numeriques que l'on souhaite transmettre...

Merci !

Salut Gsi,

une NUMERBOX n'existe pas et aucune propriété d'une TextBox ne permettra cela.

Au mieux pourras-tu limiter le nombre d'entrée possibles?

Cela dit, tu peux vérifier, à chaque frappe, si le contenu de la TextBox est numérique!

 If IsNumeric(TextBox1.Text) = False Then MsgBox "Contenu non numérique!"

A ce moment, tu peux décider d'effacer le texte déjà écrit ou, mieux, empêcher l'affichage du caractère non-autorisé!

Attention que le vide est (lorsque tu effaces le texte) sera considéré comme non-numérique! Essaie!

A mon sens, pour éviter tout problème, passe par un CInt ou autre!

A+

Bonjour,

Tu aurais peut-être meilleur temps à faire ton formulaire sur une feuille Excel. Excel privilégie les nombres, tous les contrôles de Userform contiennent par définition des valeurs texte...

Cordialement.

Merci pour vos réponses ! J'aimerais bien rester que sur une feuille EXCEL mais le formulaire de saisie est impératif car il y a plus de 70 champs dans la base de données !

On ne sait pas ce que tu veux faire, ni dans quel contexte ! On ne peut donc en discuter...

Oui désolé,je donne des précisions,voici le code dont j'ai besoin :

1) Si dans une TEXTBOX, du texte est saisi alors il va s'inscrire dans la base de données.

2) Si la TEXTBOX reste vide alors je souhaite que la valeur 0 soit inscrite.

Pour la deuxieme,j'ai deja le code, mais pas pour la premiere partie !

On Error Resume Next

ActiveCell.Offset(0, 15).Value = CDec(txtNOMconjointoucoloc)

On Error GoTo 0

Merci

C'est un peu insuffisant comme informations, et sans classeur...

Et adressage à partir de la cellule active... !!!! Très peu pour moi !

Je m'interdis absolument d'écrire un tel code !

Que t'autorises tu alors ?

Ça, ce n'est pas vraiment ton problème !

Car de toutes façons je ne produis rien tant que la question n'est pas complètement explicitée de façon rationnelle, et dès lors que la réponse exige de recourir à des références qui n'ont pas été fournies ou ne peuvent l'être en totalité avec la question, tant qu'un classeur permettant de les établir n'a pas été fourni.

Sinon, pour information :

  • un code bien écrit, et présenté selon les règles préconisées lors de la mise en service de VBA,
  • un code précis, fiable, non susceptible de dysfonctionner en cas de changement dans l'environnement ou le contexte d'exécution,
  • un code autant que possible structuré sur la base d'une analyse des objectifs auxquels il doit répondre et de la situation dans laquelle il doit opérer,
pour l'essentiel !

Merci pour votre réponse et vos précisions.Je vais en effet télécharger le classeur en question.

Encore merci.

Rechercher des sujets similaires à "comment creer numberbox"