[Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
jef39
Fraîchement OOthentifié
Messages : 7
Inscription : 30 janv. 2023 21:26

[Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par jef39 »

Bonjour,
j’ai créé une boite de dialogue comprenant 7 boutons radio, un champ numérique et un bouton de validation.
Le champ numérique est invisible à l’ouverture du dialogue. Il doit devenir visible lorsque le bouton radio n°3 est activé et s’effacer une fois avoir validé.
C’est sur ses points que je butte. Votre aide serait la bien venue.
Ci joint mon fichier avec son code.
Merci.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jef39 le 24 déc. 2023 19:23, modifié 1 fois.
LibreOffice 7.4.4.2 sous windows 11
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1140
Inscription : 19 août 2018 05:20

Re: [Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par Dolev »

Bonjour,

Je vous invite à installer Xray pour voir quels sont les propriétés pour rendre (in)visible un contrôle.
Open Office 4.1.15 sous Windows 11
jef39
Fraîchement OOthentifié
Messages : 7
Inscription : 30 janv. 2023 21:26

Re: [Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par jef39 »

Bonjour,
j'ai trouvé ma réponse sur se forum à l'adresse suivante :
viewtopic.php?t=42824
merci.
LibreOffice 7.4.4.2 sous windows 11
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9811
Inscription : 28 août 2010 08:45

Re: [Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par micmac »

Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
jef39
Fraîchement OOthentifié
Messages : 7
Inscription : 30 janv. 2023 21:26

Re:[Résolu] [Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par jef39 »

Bonjour,
désolé j'avais oublier la coche verte. c'est fait (du moins je l'espère).
Cordialement
LibreOffice 7.4.4.2 sous windows 11
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12659
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par Bidouille »

Bonjour,

Relisez le lien qu'on vous a donné : pour être visible le balisage doit être placé dans le PREMIER message.

Nous sommes un forum d'entraide, merci de partager la solution à ce problème en publiant un document contenant la nouvelle macro.
Vous êtes invité à penser à ceux qui effectuent des recherches et qui tombent sur des fils en impasse.

Cordialement
jef39
Fraîchement OOthentifié
Messages : 7
Inscription : 30 janv. 2023 21:26

Re: [Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par jef39 »

Bonjour,
j'espère que cette fois se sera la bonne.
Voici ci dessous le listing qui gère la partie de ma boite de dialogue permettant l'affichage du champ année lorsque qu'on clique sur la 3ème ligne.

Code : Tout sélectionner

Sub AfficheDialogueMENU()
	Dim bibli As Object
	Dim monDialogue As Object, exitOK As String
	Dim ChAnnee as object,Annee as double
	Dim Coche as Object
	Dim OptionButton1 as Boolean	
	Dim OptionButton2 as Boolean
	Dim OptionButton3 as Boolean
	Dim OptionButton4 as Boolean
	Dim OptionButton5 as Boolean
	Dim OptionButton6 as Boolean
	Dim OptionButton7 as Boolean
	
	exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
	' charger la bibliothèque en mémoire
	DialogLibraries.LoadLibrary( "Standard" )
	' récupérer l'objet bibliothèque
	bibli = DialogLibraries.GetByName("Standard")
	' récupérer la boîte de dialogue dans la bibliothèque
	monDialogue = bibli.GetByName("MENU")
	Dlg = CreateUnoDialog(monDialogue) ' créer le dialogue
	
	monDocument=thiscomponent
	mesFeuilles = monDocument.sheets
	maFeuille = mesFeuilles.GetByName("Choristes")
	'ModifierDialogue
	
	Dlg.execute

	Coche =Dlg.GetControl("OptionButton1")
	OptionButton1=Coche.State
	Coche =Dlg.GetControl("OptionButton2")
	OptionButton2=Coche.State
	Coche =Dlg.GetControl("OptionButton3")
	OptionButton3=Coche.State
	Coche =Dlg.GetControl("OptionButton4")
	OptionButton4=Coche.State
	Coche =Dlg.GetControl("OptionButton5")
	OptionButton5=Coche.State
	Coche =Dlg.GetControl("OptionButton6")
	OptionButton6=Coche.State
	Coche =Dlg.GetControl("OptionButton7")
	OptionButton7=Coche.State
		
	if OptionButton1 then
		'affiche la saison en cours
		Cells = maFeuille.GetCellRangeByName("J1")
		Annee = Cells.value
	End if
	
	if OptionButton2 then
		'Affiche tous les choristes actuels et anciens
		Annee=0
	End if
	
	if OptionButton3 then
		'Affiche les choristes de la saison choisie
		Dim k as Object
		Cells = maFeuille.GetCellRangeByName("J1")	
		Cell=Cells.Value
		
		k=Dlg.getControl("Annee")
		Annee = k.model.Value
		if Annee<1987 or Annee>Cell  then
			Msgbox "Valeur incorrect : "& chr(13)_
			& "l'année doit être comprise entre 1987 "_
			& "et " & Cell &". "
			'Dlg.Dispose
			exit sub
		end if
	End if
	
	if OptionButton4 then
	'Création d'un nouveau choriste	
	End if
	
	if OptionButton5 then
	'Mise à jour des information d'un choriste		
	End if
	if OptionButton6 then
	'Mise à jour des mandats	
	End if
	if OptionButton7 then
	'Affichage aide		
	End if
	Cells = maFeuille.GetCellRangeByName("M1")	
	Cells.value=Annee
	Dlg.Dispose
End Sub

sub fermer
		Dlg.Dispose
end sub

sub afficheAnnee
	dim k as object
	k=Dlg.getControl("Annee")
	if k.Model.EnableVisible = false then
		k.Model.EnableVisible = True
	endif	
end sub
La Sub afficheAnnee est à mettre dans l'évènement "A la réception du focus" du 3° bouton radio.
Cordialement
Jef39
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.4.4.2 sous windows 11
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1140
Inscription : 19 août 2018 05:20

Re: [Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par Dolev »

Bonjour,

Sauf erreur, il n'y a pas de macro dans le document joint.
Et je ne vois pas comment la Sub afficheAnnee pourrait marcher puisque le dialogue n'est pas passé en paramètre ou déclaré en variable globale.
Open Office 4.1.15 sous Windows 11
jef39
Fraîchement OOthentifié
Messages : 7
Inscription : 30 janv. 2023 21:26

Re: [Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par jef39 »

Bonjour,
je remets le fichier test avec toutes les macros. Je l'ai vérifié : chez moi lorsque je clique sur le bouton "accès menu" du tableau j'obtiens bien la boite de dialogue et lorsque je clique sur le 3° bouton radio le champ numérique apparait. Si je rentre une valeur correcte dans se champ cette valeur s'inscrit en M1.
Il y à encore quelques problèmes à régler mais pour moi la question que j'ai posé est résolue.
Cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.4.4.2 sous windows 11
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1140
Inscription : 19 août 2018 05:20

Re: [Résolu][Calc]affiche/desaffiche champ numerique d'une boite de dialogue

Message par Dolev »

Normal car vous déclarez toutes les variables en amont :

Code : Tout sélectionner

Option explicit
Private Dlg As Object
Private monDocument as Object
Private mesFeuilles as Object
Private maFeuille as Object
Private Cells as Object, Cell as double
Ce qui n'est pas très propre. Il vaut mieux récupérer l'objet en paramètre.
C'est mon avis.
Open Office 4.1.15 sous Windows 11