VBA - Fonction If dans UserForm
Résolu
RussellD
Messages postés
60
Statut
Membre
-
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.
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 !
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:
- VBA - Fonction If dans UserForm
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer dans word - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
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)
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)
Bonjour,
Je pense que c'est parceque textbox ne donne pas une valeur numérique, je propose le code suivant :
On teste si c'est numérique puis on compare en transformant en décimal.
A+
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+