Problème avec Select case sous VB

Résolu/Fermé
Mister Canard Messages postés 512 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 22 février 2012 - 6 mars 2011 à 17:45
Mister Canard Messages postés 512 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 22 février 2012 - 6 mars 2011 à 18:30
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 ! =)


A voir également:

1 réponse

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
6 mars 2011 à 18:24
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
Mister Canard Messages postés 512 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 22 février 2012 1
6 mars 2011 à 18:30
Merci pour ton aide, ça fonctionne impec' =)
0