[VBA / Excel] Textbox --> Integer

Résolu/Fermé
sfritz - 9 oct. 2008 à 08:45
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 - 9 oct. 2008 à 09:22
Bonjour,
je fais un programme sous VBA EXCEL (office 2003) pour mon entreprise pour récupérer des longeurs (en mm).
Comme ces longueurs sont toujours sous formes d'entiers, j'ai crée une variable qui me permet de récupérer ces nombres en Integer à partir de la valeur entrée dans une Textbox.
Mais comme je ne serais pas l'utilisateur final, j'aimerai mettre en place quelquechose afin d'éviter les erreurs, j'essaie donc de résoudre les futurs erreurs que les utilisateurs pourrait avoir.
Si l'utilisateur met un chiffre à virgule il sera arrondie à l'entier, s'il met une valeur négative un message d'erreur apparaitra et il devra la changer.
Mais j'aimerai également faire pour que quand il met autre chose que des chiffres (du genre "42;bn2" ou "voilà"...), qu'un message d'erreur apparaisse pour lui faire changer cette valeur.

Mais quand je met du texte dans ma textbox, j'ai une erreur avec ma variable:

"Dim ha as Integer

ha = TextBox1"

J'ai le message d'erreur suivant:
"Erreur d'exécution '13': Incompatibilité de type"
Et le message s'arrête là, je ne vois pas quelle est mon erreur.

Dans un autre programme, j'avais une variable du même genre, en Integer à partir d'une inputbox, et quand je mettais autre chose qu'une valeur numérique la variable était =0.
Je ne comprends pas pourquoi ici ce n'est pas le cas.

Pouvez vous m'aider?

Merci

sfritz
A voir également:

1 réponse

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
9 oct. 2008 à 09:22
Bonjour,
à partir du moment que tu essaies d'affecter à ta variable ha une valeur qui ne correspond pas à son type, tu as ce message "Incompatibilité de type". C'est la cas ici quand tu veux affecter une valeur de type String (du texte) à ta variable de type Integer.

Il faudrait faire un test sur la valeur de TextBox1 avant de transférer sa valeur à ta variable.
par exemple :
If Not IsNumeric(TextBox1.Value) Then
        MsgBox "..."
        TextBox1.Value = Empty
    Else
        ha = TextBox1.Value
End If

I.
0