VBA Excel - Calcul / Problème de condition

talined Messages postés 44 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 14 mars 2012 - 24 janv. 2012 à 19:46
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 24 janv. 2012 à 20:05
Bonjour,

je rencontre un problème au niveau d'une condition d'un calcul. Voici le code :
........................................................................................
'Détermine le coefficient dans le calcul du taux dégressif selon la durée d'amortissement
'Le taux est de 1.25 si la durée d'amortissement de 3 ou 4 ans, de 1.75 si elle est de 5 ou 6 ans et de 2.25 si la durée est supérieure à 6 ans
If ZT_DUREEAMT.Value < 3 Then
Taux_Degressif = Round(Taux_Lineaire, 5)

ElseIf ZT_DUREEAMT.Value = 3 Or 4 Then
Taux_Degressif = Round(Taux_Lineaire * 1.25, 5)
Worksheets("Saisie_données").Cells(33, 4) = "3"

ElseIf ZT_DUREEAMT.Value = 5 Or 6 Then
Taux_Degressif = Round(Taux_Lineaire * 1.75, 5)
Worksheets("Saisie_données").Cells(33, 4) = "5"

Else: ZT_DUREEAMT.Value = Round(Taux_Lineaire * 2.25, 5)
Worksheets("Saisie_données").Cells(33, 4) = "7"
End If
........................................................................................

Le probleme est le suivant : Quelle soit la durée d'amortissement choisie, il nous renvoie toujours trois..

Quelqu'un aurait t'il une solution?

Merci!

1 réponse

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 230
24 janv. 2012 à 20:05
Bonjour, talined,

Tu t'es une fois de plus trompé de rubrique ! VBA n'est pas du VB.Net.
Je vais dans de telles conditions (puisque de ton côte :pas le moindre effort de respect de cette discipline élémentaire) me contenter d'aller au "plus gros" :
les expressions du genre :
ElseIf ZT_DUREEAMT.Value = 3 Or 4 Then 

ou
ElseIf ZT_DUREEAMT.Value = 5 Or 6 Then 

ne signifient pas ce que tu crois qu'elle signifient !
If toto = a or b
ne veut pas dire "si toto a ou si toto b" !
Et tu devrais par ailleurs peut-être (mais pas indispensable) t'intéresser ) Select Case.
Voilà tout compte tenu de tes "efforts"
Tu vas finir par comprendre l'intérêt d'observer la discipline de ce forum, j'espère !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0