Bouton d'option limité au choix! [Résolu]

aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 01:44 - Dernière réponse :  hred1
- 24 mai 2005 à 10:48
Bonjour a tous!
Voila j'espère que vous allez pouvoir m'aider a resoudre un
(de mes nombreux) probleme!

Voila premierement:

- J'ai 4 boutons d'options. Et je voudrai que lorsque que l'on coche 2 cases (n'importe lesquelles) sur 4, les 2 autres restante se grise.

Deuxiemement:(Tout autre chose, rien a voir avec le premierement!!)

- Je voudrai que lorsque que je coche un bouton d'option, qu'il prenne la cellule A1 et qu'il lui soustrait 2.Pour résumer, en fait, quand je coche le bouton d'option je voudrai qu'il me face une soustraction!!

Voila, j'espère etre pas trop demandeur, mais j'ai besoin d'aide donc j'espère que vous allez pouvoir m'aider!!!

Merci d'avance.
Aurel
Afficher la suite 

21 réponses

Meilleure réponse
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 12:22
3
Merci
C'est bien ça !
Donc sachant qu'on ne peut générer l'évenement Click que sur des contrôles non grisés, lors du click d'un bouton tu vérifie si un des 3 autres est déjà coché :
Sub NomBoutonX_Click()
NomBoutonX.Enabled = False
If (NomBoutonY.Value or NomBoutonZ.Value or NomBoutonT.Value) Then
' On grise tout
NomBoutonY.Enabled = False
NomBoutonZ.Enabled = False
NomBoutonT.Enabled = False
End If
Range("A1").value = Range("A1").value - 2
End Sub

Avec X, Y, Z et T les numéros de tes boutons (par exemple, tu pourrais aussi leur donner à chacun un nom différent) et ceci avec les permutations appropriées pour chaque bouton.
-------------------------------------------------
Débutant ... mais pas pour longtemps !

Merci Zigarn 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 20 août 2004 à 08:05
0
Merci
Pour ton premier point : dans l'événement click de tout tes boutons, teste l'état des autres boutons et du bouton actuel : si 2 boutons sont cochés, alors grise les autres, sinon, dégrise tout les boutons.

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 10:29
0
Merci
Pour ta soustraction, il suffit de réagir à l'événement Click des boutons qui doivent effectuer l'opération :
Sub NomBouton_Click()
  Range("A1").value = Range("A1").value - 2
End Sub


-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 11:38
0
Merci
Oui, ce bien ce que je veux faire mais jvois pas comment lui dire
"teste l'état des autres boutons et du bouton actuel : si 2 boutons sont cochés, alors grise les autres, sinon, dégrise tout les boutons."

Aurel
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 11:45
0
Merci
Pour savoir si un bouton d'option est coché, il te faut tester sa propriété Value : si elle vaut True, il est coché sinon il ne l'est pas.
Pour griser ou non un objet, il faut modifier la valeur de sa propriété Enabled : à True il n'est pas grisé, à False il l'est.
Cela donne donc quelque chose du genre :
Sub NomBoutonX_Click()
  If (NomBouton1.Value and NomBouton2.Value) Then
    NomBouton3.Enabled = False
    NomBouton4.Enabled = False
  End If
  Range("A1").value = Range("A1").value - 2
End Sub

par exemple, ensuite à toi d'adapter en fonction des nom de tes boutons.

-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 11:56
0
Merci
Bon, voila le code que j'ai mis:

Private Sub OptionButton9_Click()
If (OptionButton9.Value And OptionButton10.Value) Then
OptionButton11.Enabled = False
OptionButton12.Enabled = False
End If
Range("V30").Value = Range("V30").Value - 2
OptionButton9.Enabled = False
End Sub

Mais cela ne marche pas!! Il manque quelque chose ou c'est moi?

Aurel
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 11:58
0
Merci
Comment ça cela ne marche pas ?
Qu'est-ce qui ne marche pas ?

-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 12:06
0
Merci
Ben ca ne fait rien du tout!
Ca ne grise pas les autres cases après 2 choix!

En fait il y a 4 boutons!
Sur ces 4 boutons, quand je clique un 1ere fois sur l'un d'eux, faut que ca grise cette case la (ca ca marche bien), et je voudrai que lorsque que l'on coche n'importe quel des 3 autres boutons restants, que ca me grise ce 2 eme bouton choisi(ca tjr ok!), mais que vu que c'est le 2eme choix, que ca me grise les 2 dernières aussi!

Aurel
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 12:10
0
Merci
Tu veux donc griser les cases choisis et non les boutons non choisis si je comprends bien ?
Dans ce cas enlève le If, il suffit de griser le bouton courant.
Mais alors on peut cocher les autres ...
-------------------------------------------------
Débutant ... mais pas pour longtemps !
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 12:13
0
Merci
Non excuse-moi je t'ai mal compris, on reprends : tu veux donc qu'une fois deux boutons cochés tous deviennent grisés, c'est ça ?

-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 12:14
0
Merci
En fait c'est pour faire les 2!

Je reessaye d'expliquer!

Il y a 4 bouton d'option! (1à4)
Une personne clique sur le bouton 1!
Ca grise ce bouton!

Cette meme personne clique sur le bouton 3!
Ca grise ce bouton, mais ca grise aussi les boutons 2 et 4, vu que je veux limité à 2 choix possible.

Aurel
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 12:15
0
Merci
Oui c'est ca!
Aurel
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 12:32
0
Merci
Non, désolé! J'ai copier ce code la sur les 4 boutons,en faisant les modifs necessaires! Mais non, ca veux pas!

Private Sub OptionButton9_Click()
OptionButton9.Enabled = False
If (OptionButton10.Value Or OptionButton11.Value Or OptionButton12.Value) Then
' On grise tout
OptionButton10.Enabled = False
OptionButton11.Enabled = False
OptionButton12.Enabled = False
End If
Range("V30").Value = Range("V30").Value - 1
End Sub

Aurel
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 12:40
0
Merci
C bon! Désolé! Ca marche!
Ca marcher pas car c'était dans le meme groupe de controle!
Donc, je te remercie! Ouf, un probleme resolu! Jpense que j'aurai besoin d'aide cet apres midi!!! :-)
Bon je te remercie pour m'avoir dépanner!
Aurel
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 12:45
0
Merci
Exact, je suis bête !
La propriété Value ne peux être à vrai que pour un bouton d'option, il te suffit donc de tester plutôt la propriété Enabled.

-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 12:45
0
Merci
Ah!! Si!!
Une dernière question:

Pour ce qui est de la soustraction:

Range("V30").Value = Range("V30").Value - 1

Que dois je faire pour que ce soit pas possible de descendre en dessous de 5 (par exemple), avec un message d'erreur??

Par exemple:

7-2 = 5 donc ca c'est ok!

Mais si c 6-2 =4

ca c'est pas bon et je voudrai que ca puisse ne pas faire les changements et que sa ouvre une boite d'erreur!!
Est ce fesable?

Aurel
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 12:54
0
Merci
Tout à fait, il te suffit de tester le résultat avant de le mettre dans la cellule : (à mettre à la place du "Range(..)... = ...")
Temp = Range("V30").Value - 1
If (Temp < 5) Then
  MsgBox "On ne peut descendre en dessous de 5 !", vbExclamation, "Non, non, ...!"
Else
  Range("V30").Value = Temp
End If

Le premier argument de MsgBox est le message que tu veux afficher, le deuxième le type de bouton (ici le bouton Ok (par défaut) et un point d'exclamation) et le troisième le titre de la Box.
Voilà !
-------------------------------------------------
Débutant ... mais pas pour longtemps !
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 13:30
0
Merci
Mais au fait, des cases à cocher ne correspondraient-elles pas mieux que des boutons d'option dans ton cas ?

-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 20 août 2004 à 13:44
0
Merci
Ouai, si peut etre mais ca va bien comme ca donc jvais le laisser comme ca pour l'instant!

Un autre truc:

si par exemple la personne clique sur le bouton d'option 1, il se grise!
Si il clique sur un deuxieme ca grise tout le reste!

Si il se rend compte qu'il a fait une erreur et qu'il veut reprendre le choix!
Y'a t'il moyen d'annuler les effets (et d'effacer les modifs faite a partir de ce choix) en cliquant sur un bouton par exemple?
En fait, revenir au depart tout en effacant les modifs faite!!!!

Aurel
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 20 août 2004 à 13:52
0
Merci
Des cases à cocher faciliterais les choses alors, car j'imagine que les boutons ne font pas tous les mêmes modifs.
Des cases à cocher réagissent de la même manière que les bouton d'option sauf que tu peux en cocher plusieurs, du coup les tests avec les value marcherais.
Mais le plus pratique serait qu'on en discute sur le chat.

-------------------------------------------------
Débutant ... mais pas pour longtemps !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.