Page 1 sur 1

[Résolu][Calc] Mise à jour boutons radio

Publié : 22 août 2019 16:47
par Roby68
Bonjour le Forum,

Ne trouvant pas la solution adéquat à mon petit problème de gestion de boutons radio, je me retourne vers vous.

Préférant du code manuel que l'enregistreur de macro (plus concis), j'aimerai arriver à ses différents résultats :
Chaque bouton radio est appelé Chx 1, 2, 3 etc.
Pour le 1er exemple : si je clic sur Oui du Bouton radio "Chx 1" les autres boutons radio doivent avoir des valeurs différentes (valeur dans les encadrés).

Si Chx 1 = Oui → → Chx 2 = Non / Chx 3 = Non / Chx 4 = Non / Chx 5 = Non / Chx 6 = Vide

Si Chx 1 = Non → → Chx 2 = Oui / Chx 3 = Vide / Chx 4 = Vide / Chx 5 = Vide / Chx 6 = Vide

Si Chx 2 = Oui → → Chx 1 = Non / Chx 3 = Vide / Chx 4 = Vide / Chx 5 = Vide / Chx 6 = Vide

Si Chx 2 = Non → → Chx 1 = Oui / Chx 3 = Vide / Chx 4 = Vide / Chx 5 = Vide / Chx 6 = Vide

Peut être que le code n'est pas adapté, certains boutons radio répondent bien mais pas le 1er bouton mentionné de la liste dans chaque macro, je suis obligé de faire 2 fois pour que cela change.
Le code est présent.

merci d'avance à ceux qui pourront m'aider.
Bonne soirée à tous

Re: [Calc] Mise à jour boutons radio

Publié : 22 août 2019 23:23
par OOotremer971
Bonjour,

Sous réserve d'avoir correctement compris. Il faut systématiquement passer par un raz pour que le processus fonctionne correctement car le contenu des cellules liées aux boutons radio influence négativement le comportement.

Une seule macro suffit pour gérer tous les cas :

Code : Tout sélectionner

sub Main(oevt)
Raz
'xray oevt
Dim oDoc as Object, MesFeuilles as Object, maFeuille as Object
oDoc = ThisComponent
MesFeuilles = oDoc.Sheets
maFeuille = MesFeuilles.getByName("M")
Select case oevt.Source.Model.Tag	
	case "Chx1oui"
		maFeuille.getCellRangeByName("S3").SetString("O")
		maFeuille.getCellRangeByName("S7").SetString("N")
		maFeuille.getCellRangeByName("T7").SetString("N")
		maFeuille.getCellRangeByName("U7").SetString("N")
		maFeuille.getCellRangeByName("V7").SetString("")
		maFeuille.getCellRangeByName("S9").SetString("N")
		
	Case "Chx1non"
		maFeuille.getCellRangeByName("S3").SetString("N")
		maFeuille.getCellRangeByName("S7").SetString("O")
		maFeuille.getCellRangeByName("T7").SetString("")
		maFeuille.getCellRangeByName("U7").SetString("")
		maFeuille.getCellRangeByName("V7").SetString("")
		maFeuille.getCellRangeByName("S9").SetString("")

	Case "Chx2oui"
		maFeuille.getCellRangeByName("S7").SetString("O")
		maFeuille.getCellRangeByName("S3").SetString("N")
		maFeuille.getCellRangeByName("T7").SetString("")
		maFeuille.getCellRangeByName("U7").SetString("")
		maFeuille.getCellRangeByName("V7").SetString("")
		maFeuille.getCellRangeByName("S9").SetString("")

	Case "Chx2non"
		maFeuille.getCellRangeByName("S7").SetString("N")
		maFeuille.getCellRangeByName("S3").SetString("O")
		maFeuille.getCellRangeByName("T7").SetString("")
		maFeuille.getCellRangeByName("U7").SetString("")
		maFeuille.getCellRangeByName("V7").SetString("")
		maFeuille.getCellRangeByName("S9").SetString("")
End Select
End Sub
et le fichier pour tester :

Re: [Calc] Mise à jour boutons radio

Publié : 23 août 2019 08:52
par Roby68
Bonjour le Forum, OOotremer971,

Merci de consacrer un peu de temps à mon problème,
le Choix 1 Oui et Non fonctionne bien
Le Choix 2 Oui et Non fonctionne également bien

Les choix 3 et 4 Oui ne fonctionnent pas.

Pour la question de tout réinitialiser et mettre à Vide, je voulais éviter, car certains choix pouvaient se faire à partir du Choix 3 avant les deux principaux 1 et 2.
C'est quand même une bonne avancée, pour y remédier voir peut être le Raz plus sélectif.

Bonne journée à toi et au Forum

Re: [Calc] Mise à jour boutons radio

Publié : 23 août 2019 09:31
par Dredd
Bonjour,

Je pense que tu fais un mauvais usage des boutons d'options. Une option est exclusive. Tout choix annule les autres.

Dans le cas que tu donnes, ce sont plutôt des cases à cocher.

:idea:

Re: [Calc] Mise à jour boutons radio

Publié : 23 août 2019 10:39
par OOotremer971
Roby68 a écrit :Les choix 3 et 4 Oui ne fonctionnent pas.
Je te donne un exemple pour le quatre possibilités que tu proposes dans ton énoncé. A aucun moment tu mentionne un choix 3 ou 4, et rien ne t'empêche d'adapter le code pour ces autres choix, non ?

A+

Re: [Calc] Mise à jour boutons radio

Publié : 23 août 2019 14:31
par Roby68
Bonjour le Forum, OOotremer971, Dredd

Oui dans l'exemple les boutons radio 3 et 4 fonctionnent bien et je ne l'avais pas mentionné.

Pour ce qui est des cases à cocher, j'y avais bien pensé, mais ils restent limités car les choix Non sont importants dans le formulaire final.

Merci dans tous cas à vous deux

Bonne fin après midi et bon Week-end