Correction de code

amigna Messages postés 53 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 18 août 2008 - 30 mars 2008 à 01:04
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 5 avril 2008 à 03:53
Bonsoir
ce code fonctionne trés bien j'ai un probléme sur la ligne en rouge je n'arrive pas à trouver le coef =5000 sur cette ligne quand je click sur l'option du check option .
je vous demande de nous corrigé la ligne en rouge.

salaire - 7000 =98000
txtepouse =1 et txtenfants=1 coef=5000

Private Sub Optmarie_Click()
Dim coef As Integer
If Optmarie.Value Then
Select Case CLng(txtsalbase - 7000) = 98000 Case Is Txtepouse 1: coef = 8225 Case Is Txtepouse 1 and Txtenfants = 1: coef = 5000
End Select
txtimpotrv.Text = CStr(coef)
End If
End Sub

Merci d'avance

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 mars 2008 à 04:24
Salut
Comme tu l'auras vu dans l'aide de VB6, les arguments qu'on place derrière les "Case" ne peuvent pas comporter d'équations combinatoires, mais une liste de valeurs ou de groupe de valeurs   Case Txtepouse 1, Txtenfants 1
Mais ça ne fonctionnera pas puisque juste avant, tu testes déjà si Txtepouse vaut 1, ce qui sera vrai. Donc, tu ne passera jamais par cette 2ème condition.
Il faut gérer l'ordre des "Case" pour que ça marche correctement.

Select-Case, pourquoi pas. Un If-Then-Else aurait très bien fait l'affaire.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 mars 2008 à 10:56
Salut,
Essaie de passer par des IF inbriqué non? tu comprendras peu etre mieux ce que tu souhaite codé

@+: Ju£i?n
Pensez: Réponse acceptée
amigna Messages postés 53 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 18 août 2008
2 avril 2008 à 22:20
Bonsoir

je relance cette question parce que j'ai eu de solution j'ai chercé partout.
Je vous demande comment gérer l'odre des case pour que la deuxiéme option marche trés bien depuis plusieurs jours je n'arrive pas résoudre ce probléme merci de nous aidez

Private Sub Optmarie_Click()
Dim coef As Integer
If Optmarie.Value Then
Select Case CLng(txtsalbase - 7000) = 98000 Case Is Txtepouse 1: coef = 8225 Case Is Txtepouse 1 and Txtenfants = 1: coef = 5000
End Select
txtimpotrv.Text = CStr(coef)
End If
End Sub

Merci d'avance
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 avril 2008 à 13:11
Re
Refflechis 30 secondes
Le 1er Case s'exécutera si Txtepouse = 1Le 2ème Case s'exécutera si Txtepouse 1 et que Txtenfants 1 ET
que le programme arrive jusque là !
Or, comme Txtepouse = 1 est déjà une bonne condition pour le 1er Case, le second ne sera jamais exécuté, logique.
Alors, que penses-tu qu'il faut faire ?
Mets simplement les équations les plus restrictives en premier = inverse l'ordre des Case

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amigna Messages postés 53 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 18 août 2008
5 avril 2008 à 00:07
Bonsoir

je n'arrive jusqu'a présent à résoudre mon probléme je vous demande
S'il vous plait de nous donner un exemple pour qu'on puisse avancer
j'ai cherché partout mais je ne peux pas trouver la solution pour
l'équation
txtepouse = 1 : coef= 8225
txtepouse 1 et txtenfants 1 :coef =5000

merci de votre compréhension
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 avril 2008 à 03:53
Je t'ai donné la solution : lis
Rejoignez-nous