Souci avec la condition if

  • Initiateur de la discussion Initiateur de la discussion michel29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

michel29

Guest
Bonjour

J'ai un gros problème avec un userform (avec la condition if)
j'ai un textbox ou je saisie un prix HT et normalement ca me calcule
automatiquement la marge et me donne le TTC
EX: je rentre 1.50 € dans la textbox et ca m'indique bien la marge 2.80€ et le
prix TTC 4,20 €

Ca fonctionne correctement jusquà 3,00€ car quand je rentre 3.01 €uros
ca m'indique une marge erronée .

Trop de conditions IF ?

Comme c'est mon premier petit log et étant débutant je pense que je suis
passé à coté de quelque chose

Amicalement
 

Pièces jointes

Re : Souci avec la condition if

Bonjour

En fait tu te trompes de raisonnement

tu as bien compris que tes textbox te renvoient du texte et non des nombres

il faut donc que tu convertisses d'abord tes textbox en nombre avant de faire tes tests car sinon tu pars sur une valeur texte et cela ne veut rien dire

et cela deviendra

If cdbl(prix) >= 0 And cdbl(prix) <= 0.30 Then marge.Caption = 4,50

Attention il faudra peut-être remplacer cdbl par val si tu as une erreur et que tu fasses cette manipulation pour tous tes boutons et changement de textbox
 
Re : Souci avec la condition if

Bonsoir,
remplace ton code par celui-ci :

Code:
Private Sub prix_Change()
On Error Resume Next

If CDbl(prix) >= 0# And CDbl(prix) <= 0.3 Then marge.Caption = 4.5
If CDbl(prix) >= 0.31 And CDbl(prix) <= 0.8 Then marge.Caption = 3.25
If CDbl(prix) >= 0.81 And CDbl(prix) <= 1.5 Then marge.Caption = 2.8
If CDbl(prix) >= 1.51 And CDbl(prix) <= 3# Then marge.Caption = 2.5
If CDbl(prix) >= 3.01 And CDbl(prix) <= 6# Then marge.Caption = 2.25
If CDbl(prix) >= 6.01 And CDbl(prix) <= 12# Then marge.Caption = 2#
If CDbl(prix) >= 12.01 And CDbl(prix) <= 23# Then marge.Caption = 1.9
If CDbl(prix) >= 23.01 And CDbl(prix) <= 38# Then marge.Caption = 1.75
If CDbl(prix) >= 38.01 And CDbl(prix) <= 61# Then marge.Caption = 1.6
If CDbl(prix) >= 61.01 And CDbl(prix) <= 99# Then marge.Caption = 1.55
If CDbl(prix) >= 99.01 And CDbl(prix) <= 152# Then marge.Caption = 1.5
If CDbl(prix) >= 152.01 Then marge.Caption = 1.45

pm.Caption = CDbl(prix) * marge.Caption

End Sub

Edit : oupss, bonsoir pascal
 
Dernière édition:
Re : Souci avec la condition if

Bonsoir le fil

Select case est plus adapté pour ce type de traitement
Il faut faire attention à l'ordre au niveau de l'écriture, une fois la condition trouvée le système saute à end select.
Code:
Select Case CCur(prix.Text)' le prix est sous forme numérique sans utiliser la notation scientifique
        Case Is <= 0.3
            marge.Caption = "4,50"
        Case Is <= 0.8
            marge.Caption = "3,25"
         Case Is <= 1.5
            marge.Caption = "2,80"
         Case Is <= 3
            marge.Caption = "2,50"
         Case Is <= 6
            marge.Caption = "2,25"
           ................. 
End Select

A tester

JP
 
Dernière édition:
Re : Souci avec la condition if

Bonsoir à tous,

je rebondis sur le select case

prévoir un case else pour les valeurs ésotériques ...
avec un msgbox("valeur non prévue)"
genre valeur négative ou alphabet ...

et décharger recharger le userform
unload nom du UF
nom du UF.SHOW
 
Re : Souci avec la condition if

Bonjour

Bonsoir à tous,

je rebondis sur le select case

prévoir un case else pour les valeurs ésotériques ...
avec un msgbox("valeur non prévue)"
genre valeur négative ou alphabet ...

En reprenant l'idée
Au niveau du message signaler que la valeur saisie est incorrecte et sortir de la procédure
avec exit sub.
Et avant select case écrire pour vérifier si la valeur est bien numérique
If not isnumeric((prix.Text)) then
msgbox("Saisie incorrecte, vous devez écrire une valeur numérique)"
exit sub
end if

JP
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
Réponses
2
Affichages
2 K
debidebo67
D
L
Réponses
2
Affichages
662
laurano
L
M
Réponses
17
Affichages
5 K
K
Réponses
5
Affichages
2 K
kevenpom
K
P
Réponses
0
Affichages
827
P
Retour