Programmer un boutton d'option

Résolu/Fermé
samari - 1 janv. 2011 à 20:06
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 14 janv. 2011 à 15:10
Bonjour,
le probléme est le suivant:
j'ai un questionnaire ou chaque question est attribuée à DEUX bouttons d'option
l'option button 1 on lui attribue VRAI et l'option button 2 on lui attribue FAUX
la reponse juste à la question poura etre VRAI ou FAUX.une fois la reponse juste est cochée
elle est comptabilisée par 1 point. à la fin on fait la somme des points des reponses justes qui est le score et à partir du quel on assimilera un conclusion se rapportant au profil psychologique
de la personne consersné par le test .

je souhaite avoir un aide sur le code suivant s'il est exact ou non :

option Explicit
Private N as integer
Private R as integer
Private P as integer
Private M as integer
Private score as integer
Sub command1_clik
'optionbutton1.value = true et optionbutton2.value = false est la reponse juste
'optionbutton3.value = true et optionbutton4.value = false est la reponse juste
'optionbutton5.value = true et optionbutton6.value = false est la reponse juste
'optionbutton7.value = true et optionbutton8.value = false est la reponse juste
if optionbutton1.value = true then
N=1
elseif optionbutton2.value = true then
N=0
end if
if optionbutton3.value = true then
R=1
elseif optionbutton4.value = true then
R = 0
end if
if optionbutton5.value = true then
P=1
elseif optionbutton6.value = true then
P=0
end if
if optionbutton7.value = true then
M=1
elseif optionbutton8.value = true then
M=0
endif
score = N+R+P+M
if score >=10 and score <=20 then
textAffichage.Text = " Mr X presente les symptome de la phobie scolaire "
elseif score>20 and score <=30 then
textAffichage.Text = " Mr X presente les symptome d'une dépression "
end if

end sub

en voila mon initiative j'espere obtenir de l'aide de votre part et merci d'avance

bien cordialement

samari
A voir également:

7 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 2/01/2011 à 06:25
Bonjour,
Ton code sait pas aller, un ElseIf n'est pas tester si la première condition est réalisée.
Tu peu simplifier le tout par...
Exemple pour le 1er IF
Remplacer...
if optionbutton1.value = true then  
    N=1  
elseif optionbutton2.value = true then  
    N=0  
end if 

Par..
    N=Abs(optionbutton1.value) And Abs(Not(optionbutton2.value )) 
   'Où N = 1 si Op1 = True et Op2 = False, pour toutes les autres combinaisons N = 0

Tu fais la même chose pour les autres conditions.

Mais si tu tient absolument à ton If..
    If optionbutton1.value And not(optionbutton2.value) Then N=1


'???????????
if score >=10 and score <=20 then


1 + 1 + 1 + 1 = ??? pour moi ça fait jamais que 4

A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
1
merci bcp Iermite 222 pour votre supervision et conseil je vais fin la construction et l'execution de ce
code et vous informer s'il y'a probléme et merci une autre fois

Samari .

cordialement,
0
bonjours Iermite222 le code suivant :
Sub command1_clik()
Dim N As Integer
N = Abs(optionbutton1.Value) And Abs(Not (optionbutton2.Value))
N = N + Abs(optionbutton3.Value) And Abs(Not (optionbutton4.Value))
N = N + Abs(optionbutton5.Value) And Abs(Not (optionbutton6.Value))
N = N + Abs(optionbutton7.Value) And Abs(Not (optionbutton8.Value))
end sub
n'a pas fonctinné . le debogueur met une bonde jaune sur l'instruction suivante
N = Abs(optionbutton1.Value) And Abs(Not (optionbutton2.Value))

le debogueur transmet le message suivant : object required
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 2/01/2011 à 06:47
Aller, je vais complèter..

Sub command1_clik() 
Dim N As Integer 
    N = Abs(optionbutton1.Value And Not optionbutton2.Value)
    N = N + Abs(optionbutton3.Value And Not optionbutton4.Value)
    N = N + Abs(optionbutton5.Value And Not optionbutton6.Value)
    N = N + Abs(optionbutton7.Value And Not optionbutton8.Value)
    If N < 4 Then 
        textAffichage.Text = " Mr X presente les symptome d'une dépression " 
    Else 
        textAffichage.Text " Mr X presente les symptome de la phobie scolaire " 
    End If 
End Sub


Pour les textes à toi de voir.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
2 janv. 2011 à 10:27
Bonjours Iermite222

Je te remercie je viens d'apprendre une utilisation de ABS() qui ne manque pas d'intéret
Merci
Iama
0
merci pour votre aide Iermite222 mais je n'ai pas compris l'objectif de cette partie du code :

N = Abs(optionbutton1.Value And Not optionbutton2.Value)
N = N + Abs(optionbutton3.Value And Not optionbutton4.Value)
N = N + Abs(optionbutton5.Value And Not optionbutton6.Value)
N = N + Abs(optionbutton7.Value And Not optionbutton8.Value)

et plus precisement je n'ai pas compris ce que permet la fonction Abs dans ce cas :

N=Abs(optionbutton1.value) And Abs(Not(optionbutton2.value )) ???

ce code est simplifié et je voudrai l'utiliser mai je n'arrive pas à maitriser le sens de Abs
voudriez- vous m'aider j'ai du mal à avancer dans l'elaboration de mon code

merci
samari.
cordialement,
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 7/01/2011 à 19:56
N=Abs(optionbutton1.value) And Abs(Not(optionbutton2.value ))
OU
N = Abs(optionbutton1.Value And Not optionbutton2.Value)
C'est la même chose mais en plus simplifier.

Pour faire simple...
la fonction Abs() enlève le Moins d'un nombre
Exemple VRAI qui vaux -1, si tu enlève le moins, ça fait 1
Ce que tu dois avoir dans ton cas c'est 0 ou 1

Ensuite c'est une opération en algèbre de Boole -1 ET -1 = -1
Comparons : si optionbutton1 est VRAI il est donc à VRAI
Si optionbutton2 est Faux il est à FAUX mais l'opérateur NOT inverse la valeur ce qui nous donne VRAI
Et le résultat de VRAI AND VRAI = VRAI (ou -1)
y a plus qu'à enlever le signe moins avec ABS() et on a la réponse.

Pour NOT : NOT(VRAI) = FAUX et NOT(FAUX) = VRAI
La table de vérité de l'opérateur ET est 
    VRAI ET VRAI = VRAI 
    FAUX ET VRAI = FAUX 
    VRAI ET FAUX = FAUX


J'espère avoir été plus ou moins clair.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 janv. 2011 à 19:56
C'est qui trouve pas tes OptionButton
Y sont sur quoi ? une feuille, un Userform ?
Ton code il est où ? sur quel module ?
0

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

Posez votre question
mes optionButton , zonne de texte et tous les boutons de commandes se trouve sur la form4 .

je n'ai pas bien compris cette partie de module.vous m'avez posé la question

sur quel module existe mon code . je ne sais pas s'il sagit d'un module standar ou
un module classes que j'etulise mais je vous fais montrer mon code pour que vous puissiez deviner sur quel module il existe .

Private Sub cmdsomme_Click()
Dim N As Integer
N = Abs(optionbutton1.Value) And Abs(Not (optionbutton2.Value))
N = N + Abs(optionbutton3.Value) And Abs(Not (optionbutton4.Value))
N = N + Abs(optionbutton5.Value) And Abs(Not (optionbutton6.Value))
N = N + Abs(optionbutton7.Value) And Abs(Not (optionbutton8.Value))
If N < 4 Then
textAffichage.Text = " Mr X presente les symptome d'une dépression "
Else
textAffichage.Text " Mr X presente les symptome de la phobie scolaire "
End If

End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 janv. 2011 à 00:29
Dans le titre de la fenêtre où est le code que tu montre ci-dessus il est marquer quoi ?
Modul1 ou Feuil1(code) ou Feuil2(code) ?
tu dis
0
bonsoir
j'ai posté un message pour vous je ne sait s'il vous est arrivé ou non mais
mon code se situe dans feuille4(code) et c'est une feuille que j'ai pris à part pour tester avec 4 questions et 8 options button et un cmd1: affichage , un cmd2 : quitter et un cmd3 : somme ou score
tous mes bouttons d'option se trouve sur la feuille 4.


mais il ya un probléme que j'aimerai relevé aussi, c'est que mon questionnaire s'etale sur 3 feuilles et je dois par conséquant charger les trois feuille une à pres l'autre successivement pour cocher tout les reponses justes pour que dans la troisieme et derniére feuille je puisse afficher dans la zone de texte la conclusion corespendante au score.

comment palier à ce probléme dans le code ?

merci .

samari .

cordialement,
0
bonjour Iermite 222 je n'ai pas reçu de réponse à mes questions . j'attendait 2 jours et je n'ai reçu aucune réponse.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 janv. 2011 à 15:10
Tu n'a reçu aucune réponse ? mais tu ne répond pas à mes questions !!
Pour couper court, poste ton classeur sur CiJoint.fr et met le lien dans un poste suivant.
0