Problème avec Select case sous VB

Résolu
Mister Canard Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Mister Canard Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai écrit un programme sous VBA qui est censé calculer un pourcentage de ristourne selon le montant des achats. Le problème est que je rentre une valeur positive, et il me calcule systématiquement que le net financier est égal a zéro.
J'utilise la fonction Do pour faire une boucle et relancer le programme automatiquement et la fonction If pour exclure tout chiffre négatf.
Voici le code source :
Option Explicit
Private Sub CommandButton1_Click()
Dim netfin As Currency
Dim netcom As Currency
Do
netfin = InputBox("Saisir le net financier, cliquer sur Annuler pour quitter", "Entrée du net financier", 0)
If netfin <= 0 Then
MsgBox ("Veuillez resaisir, valeur incorrecte !")
Else
Select Case netfin
Case netfin <= 1500
netcom = netfin * 97 / 100
Case netfin <= 3000
netcom = netfin * 95 / 100
End Select
End If
MsgBox ("Net commercial : " & netcom & " €.")
Loop
End Sub
J'ai planché sur le problème tout l'après midi, et de ne trouve pas de solution :(
Merci d'avance a tous ceux qui pourront m'aider a résoudre ce problème ! =)



--
Manchots dans le garage, geek dans les parages.

1 réponse

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    je crois que je l'écrirais comme ça

    Option Explicit
    
    Private Sub CommandButton1_Click()
    Dim netfin As Single
    Dim netcom As Single
    Do
      netfin = Val(InputBox("Saisir le net financier, cliquer sur Annuler pour quitter", "Entrée du net financier", 0))
      While netfin < 0
        netfin = Val(InputBox("Donnée incorrecte, saisir le net financier, cliquer sur Annuler pour quitter", "Entrée du net financier", 0))
      Wend
      If netfin > 0 Then
        Select Case netfin
          Case 0 To 1500
            netcom = netfin * 97 / 100
          Case 1500 To 3000
            netcom = netfin * 95 / 100
        End Select
        MsgBox ("Net commercial : " & netcom & " €.")
      End If
    Loop Until netfin = 0
    End Sub

    bonne suite
    0
    1. Mister Canard Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   1
       
      Merci pour ton aide, ça fonctionne impec' =)
      0