VBA - Fonction If dans UserForm

Résolu
RussellD Messages postés 60 Statut Membre -  
RussellD Messages postés 60 Statut Membre -
Bonjour à tous,

j'ai un souci avec une fonction IF dans un userform. En fait j'ai écris une fonction If en VBA qui, si la valeur entrée dans une des cases du UserForm est supérieure à une valeur de ma feuille de calcul (Excel 2003), envoie un message d'erreur.

If TextBox1.Value > Range("I17").Value Then
MsgBox "La température est trop élevée", vbExclamation, "Erreur saisie"
TextBox1.Value = ""
Exit Sub
End If


Le souci c'est qu'une fois ce code entré, pour chaque valeur que je met dans TextBox1 le message d'erreur apparait, même si la valeur entrée est inférieure à la valeur en I17.
Je me demande donc s'il reconnait bien la commande Range("I17").Value ? Faut-il le formuler autrement, vu que l'on se trouve dans un UserForm et que l'on fait appel à une valeur de la feuille de calcul?

Merci d'avance pour vos réponses !
A voir également:

4 réponses

Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

Il faut peut être préfixé le Range en indiquant dans quelle feuille il se trouve : Worksheets(1).Range("I17").Value. Ensuite ou se trouve ce bout de code ? dans quelle procédure ?

;o)
0
pilas31 Messages postés 1878 Statut Contributeur 646
 
Bonjour,

Je pense que c'est parceque textbox ne donne pas une valeur numérique, je propose le code suivant :



If Not IsNumeric(TextBox1.Value) Then
    MsgBox "Saisir une valeur numérique", vbExclamation, "Erreur saisie"
    TextBox1.Value = ""
    Exit Sub
ElseIf CDec(TextBox1.Value) > Range("I17").Value Then
    MsgBox "La température est trop élevée", vbExclamation, "Erreur saisie"
    TextBox1.Value = ""
    Exit Sub
End If



On teste si c'est numérique puis on compare en transformant en décimal.

A+
0
michel_m Messages postés 18903 Statut Contributeur 3 317
 
Bonjour russel, polux
Textbox te renvoie du texte que tu compare à un nombre dans I17
donc modifie comme ceci
If val(TextBox1.Value) > Range("I17").Value Then
0
RussellD Messages postés 60 Statut Membre 7
 
Bonjour à tous et merci de vos réponses.

La proposition de michel marche parfaitement pour mon cas, merci beaucoup. Le problème était en effet que TextBox renvoie du texte, et non pas du numérique

Merci à tous !

Cordialement
0