Excel: condition sur champs lié à bouton

Résolu/Fermé
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - 6 déc. 2009 à 00:40
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - 9 déc. 2009 à 23:31
Bonjour,

J'ai un groupe de 2 boutons lié à une case B1, par exemple.
Et j'ai 2 groupes de 3 boutons lié respectivement avec la case B2 et B3.
Si la case B1=1 alors la case B2 prend la valeur du bouton. Mais si B1=2 alors B2 doit être égal à 3.
Pour résumer comment puis-je faire une condition sur une case lié à des boutons.
J'ai essayé un banal si: "si(B1=2;3;"")" mais je ne sais pas quoi mettre en 2e choix.

Quelqu'un serait-il m'aider SVP?

Merci
A voir également:

13 réponses

m@rina Messages postés 21076 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 novembre 2024 11 347
6 déc. 2009 à 01:29
Bonjour,

Je ne sais pas ce que sont tes boutons (tu parles de groupe de boutons... ce sont des boutons d'option ???), en tout état de cause, ce n'est pas une formule qui va déterminer la valeur d'un bouton.
Il faut voir avec les événements des boutons (On Click, On Change...), via le VBA.

Par ailleurs, tu dis "si la case B2 prend la valeur du bouton"... mais de quel bouton parles-tu ?

Bref, essaie d'être plus clair si tu veux qu'on t'aide ;)

m@rina
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
6 déc. 2009 à 15:15
Bonjour Marina,

Ma concentration m'a très fatigué alors je n'ai pas fait attention à ce que j'écrivais.
Mais non, il s'agit de "case d'option" pas de bouton.

J'ai lié la cellule B2 à mon 1er groupe de 3 cases d'option, afin de voir le choix effectué.
Lorsque ce choix est fait la cellule B2 a la valeur 1, 2 ou 3.
J'ai lié la cellule B1 à un groupe de 2 cases d'option. B1 affiche le choix 1 ou 2 de ce groupe.
C'est le choix effectué dans ce groupe qui va déterminer le choix des réponses suivantes.

Donc, si je sélectionne la case 1, B1=1; je veux alors que la cellule B2 soit égale à 3 automatiquement.
Par contre, si je sélectionne la case 2, B1=2; je veux que la cellule B2 représente le choix du 1er groupe de 3 cases d'option.

J'espère que je suis assez clair, je voudrais bien joindre une feuille en exemple mais je ne sais pas comment on fait.

Merci de votre aide.
0
Mike-31 Messages postés 18344 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 103
6 déc. 2009 à 15:35
Salut,

Si ton fichier ne comporte pas de données confidentielles ou masque les par des toto, titi etc et mets ton fichier sur un post que l'on y voit plus clair avec ce lien

https://www.cjoint.com/
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
6 déc. 2009 à 16:22
Merci Mike-31,

Voici le lien de mon fichier : https://www.cjoint.com/?mgquyyzj3B
J'espere que ca marchera;
0

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

Posez votre question
m@rina Messages postés 21076 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 novembre 2024 11 347
6 déc. 2009 à 16:41
Bonjour,

C'est pas tellement plus clair, car tu nous parles de B1, B2 et tu as utilisé d'autres cellules dans l'exemple.
De plus, je ne sais pas à quoi sert le 3e groupe d'option.

En tout état de cause, si la première cellule dépend de deux sources en fonction de certains critères, ces deux sources étant des cases d'option, ce n'est pas possible, comme je te l'ai dit, par formule.
En effet, la case d'option va systématiquement écraser ta formule.

Et je vois que tu as utilisé des outils de formulaire et non pas des contrôles ActiveX. Ce sont ces derniers que tu dois utiliser, avec des macros qui doivent être programmées sur événement.

m@rina
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
6 déc. 2009 à 16:51
Marina,

Tu as pu identifier mon pb, la case d'option écrase ma formule.
Mais as-tu un exemple avec les controle activeX, je prends ça où? car je ne sais pas c que c'est !

Merci
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
6 déc. 2009 à 18:19
Finalement j'ai trouvé les controles activeX, et c'est galère maintenant, car je dois changer un a un dans mes pages tous mes controles que j'avais fais en controle de formulaire.
Mais comment du coup, attribuer une valeur à une case d'option en activeX ? car j'ai fais un classement en fonction de la case choisi.
0
Mike-31 Messages postés 18344 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 103
6 déc. 2009 à 21:49
Re,

Me voilà de retour, j'ai du mal à cerner tes attentes et encore plus la manip que tu expliques sur les post 6 et 7
Si tu ne sais pas faire demande avant de faire des bêtises et attends que l'on t'explique, nous sommes bénévoles et ne pouvons être derrière chaque discussion 24 heures sur 24

Si tes connaissances en VBA son limitées, ce n'est pas un problème, nous sommes tous passé par là et dans un premier temps pour solutionner ton problème, chaque groupe de case option est lié à une cellule que tu as mis en colonne E et qui peut être masquée. A partir de là rien ne t’empêche d’écrire des formules simple avec des conditionnelles du genre

=SI(E3=1;E6;3) etc ...

Récupères ton fichier exemple avec ce lien

https://www.cjoint.com/?mgvUGERQ0W
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
7 déc. 2009 à 14:40
J'ai apporté plus de précision ...
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
7 déc. 2009 à 14:04
Bonjour,

Excusez moi encore! je vais essayer d'être plus précis.
Oubliez tout ce qui précède! je dévoile tout.

Initialement j'ai fais un questionnaire (100questions) dont je tire des conclusions à partir des réponses données par une sélection dans un groupe de 4 cases d'option correspondant à 4 réponses possibles par question.
Dans mon fichier joins, j'ai représenté 2 groupes de 3 réponses pour raccourcir:
Réponse question1 et Réponse question 2. J'affiche la réponse choisie respectivement dans la cellule E6 et E8.

Comme mes questions se rapportent à un type de logement (Appartement ou Maison) il y a des questions que je n'ai pas besoin de poser si c'est un appartement ou dont la réponse est connue d'office.
C'est pourquoi j'ai créé un 1er groupe "groupe" dont le choix via les cases d'option (G1 ou G2) me permettra d'imposer les réponses d'office à certaines questions.

Le pb est que comme j'ai réalisé mon questionnaire avec des case d'option d'un formulaire je me retrouve coincé car je ne sais pas comment imposer une réponse sans qu'elle soit écrasée (comme Marina l'a aussi constaté).
Mon second pb est qu'effectivement je ne sais pas programmer en VBA.

Dans mon exemple, si je tape 3 en E6 la case d'option se mettra sur la réponse 3. De même, si je clic sur la 2e case la réponse affichée en E6 sera 2. Ce que je veux c'est que si je clic sur G2 dans le groupe "Groupe" alors, par exemple, la réponse à la question 1 sera d'office celle que j'impose, par exemple 4.

J'espère que je suis plus précis, je m'en voudrais de vous embêter inutilement de nouveau.
Alors merci d'avance pour votre aide.
0
m@rina Messages postés 21076 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 novembre 2024 11 347
7 déc. 2009 à 20:29
Bonjour,

Voici un exemple ici :
https://www.cjoint.com/?mhuCjwxdYB
N'oublie pas d'activer les macros et éventuellement de sortir du mode Création.
Regarde le code, tu verras, c'est extrêmement simple.

m@rina
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
8 déc. 2009 à 10:38
Marina, je te remercie!

C'est vrai que c'est simple. Cependant, je ne comprends pas ce que fait ce code en gras:

Private Sub OptionButton8_Click()
Range("E10").Value = 4
OptionButton10.Value = False
End Sub

Private Sub OptionButton10_Click()
Range("E10").Value = 4
OptionButton8.Value = True
End Sub

Si je veux que la valeur que j'impose soit 2, peux-tu me dire où faut-il que je change la valeur?

Aussi, peux-tu faire en sorte que SEUL le bouton B impose une réponse à UNE SEULE des 2 questions, STP?
(celle que tu veux comme ça je décortiquerai le code).

Merci.
0
m@rina Messages postés 21076 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 novembre 2024 11 347
9 déc. 2009 à 11:04
Bonjour,


Private Sub OptionButton8_Click() 

Il s'agit d'une macro événementielle : action quand on clique sur le bouton d'Option 8


Range("E10").Value = 4 

Quand on clique sur le bouton d'option 8, la cellule E10 prend la valeur 4


OptionButton10.Value = False

et le bouton d'option 10 devient coché (et s'il est coché, cela entraîne une modif ailleurs => voir l'événement CHANGE pour le bouton d'option 10)


End Sub 



m@rina
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
9 déc. 2009 à 23:31
Merci pour ton aide Marina!
0