Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

vba calcul par tranche avec IF ne fonctionne pas

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 !

slaurent01

XLDnaute Junior
Bonjour le forum,

Bonjour à tous, j'ai un problème dans mon programme. J'ai un calcul qui doit se faire selon des tranches. j'ai donc saisi le code suivant :
Code:
Sub test()

Dim val As Currency
Dim val1 As String

Dim fourn1 As Currency
Dim fourn2 As Currency

val = ThisWorkbook.Worksheets("Feuil1").Range("A2").Value
val1 = ThisWorkbook.Worksheets("Feuil1").Range("b2").Value

If val > 3000 Then
fourn1 = val * 0.04
Else
    If val > 1 Or val < 150 Then
    fourn1 = 15
    Else
        If val > 150 Or val < 380 Then
        fourn1 = 45
        Else
            If val > 380 Or val < 760 Then
            fourn1 = 60
            Else
                If val > 760 Or val < 1500 Then
                fourn1 = 75
                Else
                    If val > 1500 Or val < 3000 Then
                    fourn1 = 90
                    End If
                End If
            End If
        End If
    End If
End If

 If val1 = "N" Then
fourn2 = 0
Else
fourn2 = (val * 0.01 * 8.5) + 8
End If

Range("c2").Value = fourn1
Range("d2").Value = fourn2
End Sub

Si la valeur est > 3000 le calcul se fait bien, sinon il s'arrête toujours à la première tranche. Je ne comprends pas pourquoi ca ne marche pas. J'appelle donc à l'aide et vous en remercie par avance.

Je joins le code de mon programme qui ne marche pas.

cordialement
Stéphane
 

Pièces jointes

Re : vba calcul par tranche avec IF ne fonctionne pas

Bonjour,

Peut-être cela qui ne va pas :

Code:
If val > 1500 Or val < 3000 Then

à rectifier par :

Code:
If val > 1500 Or val <= 3000 Then

Bonne journée
 
Re : vba calcul par tranche avec IF ne fonctionne pas

Bonjour,

petite remarque au passage, Val est une fonction native de vba, déconseillé de l'utiliser comme nom de variable ou de procédure...

bon après midi
@+
 
Re : vba calcul par tranche avec IF ne fonctionne pas

bonjour Pierrot93, dans mon programme "val" est à un autre nom, et ca ne marche pas non plus. Mais j' en prends bonne note et ne l'utiliserai plus dans les procédures.
Merci
Bonne journée
Stéphane
 
Resolu : vba calcul par tranche avec IF ne fonctionne pas

bonjour à tous,

J'ai enfin trouvé la solution. je n'indique une valeur minimum et maximum de la tranche, mais que la maximum.
Il y a certainement plus simple comme écriture, mais ca marche.

Code:
If val > 3000 Then
fourn1 = val * 0.04
Else
    If val <= 150 Then
    fourn1 = 15
    Else
        If val <= 380 Then
        fourn1 = 45
        Else
            If val <= 760 Then
            fourn1 = 60
            Else
                If val <= 1500 Then
                fourn1 = 75
                Else
                    If val <= 3000 Then
                    fourn1 = 90
                    End If
                End If
            End If
        End If
    End If

Merci bonne fin de journée.

Stéphane
 
Re : vba calcul par tranche avec IF ne fonctionne pas

bonjour
à tester
Code:
Public Sub x()
    If valeur > 3000 Then
        fourn1 = valeur * 0.04
    ElseIf valeur <= 150 Then
        fourn1 = 15
    ElseIf valeur <= 380 Then
        fourn1 = 45
    ElseIf valeur <= 760 Then
        fourn1 = 60
    ElseIf valeur <= 1500 Then
        fourn1 = 75
    ElseIf valeur <= 3000 Then
        fourn1 = 90
    End If
End If
End If
End If
End If

End Sub

Public Sub xx()

    Select Case valeur
    Case Is > 3000
        fourn1 = valeur * 0.04
    Case Is <= 150
        fourn1 = 15
    Case Is <= 380
        fourn1 = 45
    Case Is <= 760
        fourn1 = 60
    Case Is <= 1500
        fourn1 = 75
    Case Is <= 3000
        fourn1 = 90
    End Select

End Sub
 
Re : vba calcul par tranche avec IF ne fonctionne pas

bonsoir le forum,

bonsoir bebere, merci pour votre réponse. Je vais tester ces codes qui sont mieux construits que le mien
et reviendrait pour donner les conclusions.
Bonne soirée.

cordialement
stéphane
 
- 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

Discussions similaires

Réponses
4
Affichages
179
Réponses
0
Affichages
566
Réponses
4
Affichages
549
Réponses
1
Affichages
521
Réponses
3
Affichages
508
Réponses
6
Affichages
605
Réponses
0
Affichages
460
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…