[Résolu][Calc] Faire disparaître le menu contextuel

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 !
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

[Résolu][Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour,
Après l'exécution d'une macro évènementielle (click droit sur une cellule), un menu contextuel apparaît à la droite de la cellule sélectionnée.
La macro se déroule correctement et fourni le résultat attendu
Je cherche le moyen de faire disparaître ce menu contextuel (qui, pour l'instant, m'oblige à cliquer sur une autre cellule)
j'ai essayé Cancel=True (excel VBA) : ça ne fonctionne pas

Je vous remercie par avance
Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4260
Inscription : 06 oct. 2008 08:03

Re: Faire disparaître le menu contextuel

Message par Oukcha »

Bonjour et bienvenue,

Image

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://user.services.openoffice.org/fr/ ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Merci de votre collaboration.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: Faire disparaître le menu contextuel

Message par chalet53 »

Bonsoir
Débutant sur ce forum, je suis désolé : je ne comprends pas votre demande
La lecture du lien sur le balisage ne m'éclaire pas vraiment.
Je ne vois pas ce que je dois faire et où
Désolé de vous avoir dérangé
Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12668
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: Faire disparaître le menu contextuel

Message par Bidouille »

chalet53 a écrit : 16 avr. 2025 16:46 Je ne vois pas ce que je dois faire et où
Avez-vous vu comment sont les titres des questions dans cette section ?

C'est simple, vous parlez de cellule et vous mentionnez Excel.
Sous OpenOffice et ses dérivés, le tableur s'appelle Calc.
Je place donc cette balise dans le titre.
Veillez-y par vous-même la prochaine fois.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25977
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Faire disparaître le menu contextuel

Message par Dude »

Salut,
chalet53 a écrit : 16 avr. 2025 14:28 Je cherche le moyen de faire disparaître ce menu contextuel
Image
Avec les mots-clés du titre de ta question, on trouve : viewtopic.php?t=19155&hilit=calc+menu+contextuel
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour Dude

Merci pour cette réponse
J'avais fait une recherche sur mot clé (pas trouvé : désolé)
je ne sais pas comment intégrer les éléments proposés dans mon fichier (je suis très débutant sur cette suite bureautique)
Je joins mon fichier pour info
Je suis parti d'une boîte de dialogue reprise dans un fichier sur le site
Un click droit sur le nom affiche la boîte de dialogue. elle me permet en cliquant sur les liens d'accéder aux registres d'Etat Civil
En cliquant sur le bouton Quitter, apparaît dans la feuille le menu contextuel que je ne veux pas voir apparaître
D'ailleurs, ce bouton Quitter (présent sur la boîte de dialogue récupérée) ferme bien la boîte et pourtant, je ne vois aucune macro associée. C'est un mystère pour moi : si vous pouviez m'apporter une explication, j'en serai ravi
Cordialement
Marc
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9823
Inscription : 28 août 2010 08:45

Re: [Calc] Faire disparaître le menu contextuel

Message par micmac »

Bonjour,
chalet53 a écrit : 17 avr. 2025 08:20Je suis parti d'une boîte de dialogue reprise dans un fichier sur le site
La coutume veut qu'on donne le lien vers l'origine de l'emprunt.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Re,
Oui, je le sais et je le fais d'une manière systématique d'habitude. Seulement, si je ne le précise pas ici, c'est tout simplement parce que je ne sais plus sur quel site je l'ai récupéré
Désolé
Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25977
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Faire disparaître le menu contextuel

Message par Dude »

Problème XY, tu pars dans une usine à gaz.
Il serait plus simple de poser un contrôle bouton sur la feuille qui appelle le dialogue.

Le document tel que tu le fournis, laisse penser que le module Base serait sans doute plus approprié qu'un tableur.
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Re,
Je souhaite développer sur cette suite bureautique (libre d'accès) ce que j'ai développé sur une suite concurrente (dont je ne dirai pas le nom) et qui fonctionne très bien avec des volumes importants (plus de 10 000 lignes dans certains cas)
Je vous remercie de votre aide
Je vais continuer mes recherches (ici et ailleurs)
Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25977
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Faire disparaître le menu contextuel

Message par Dude »

chalet53 a écrit : 17 avr. 2025 08:20 je ne sais pas comment intégrer les éléments proposés dans mon fichier (je suis très débutant sur cette suite bureautique)
La déclaration d'une interface d'écoute pour intercepter le clic droit est pourtant bien décrite dans l'exemple donnée.
Il suffit alors de le combiner avec l'affichage du dialogue.
J'ai fait un document plus didactique que le tien afin de synthétiser le problème exposé :

Code : Tout sélectionner

Sub LanceMoi
	sInterface = "com.sun.star.ui.XContextMenuInterceptor"
	oCC = ThisComponent.getCurrentController()
	oCMI = CreateUnoListener("Ecoute_", sInterface)
	oCC.registerContextMenuInterceptor(oCMI)
	msgbox "Lancement interception"
End Sub

Function Ecoute_notifyContextMenuExecute(oEvt)
	nAnnule = com.sun.star.ui.ContextMenuInterceptorAction.CANCELLED
	nIgnore = com.sun.star.ui.ContextMenuInterceptorAction.IGNORED
	'Où suis-je ?
	sCell = "$Feuille1.$C$4"
	oFeuil = oEvt.Selection.getModel()
  	oSelection = oFeuil.getCurrentSelection()
  	sSelect = oSelection.AbsoluteName
  	if sSelect = sCell then
  		'on affiche le dialogue sans le menu contextuel
  		DialogLibraries.LoadLibrary("Standard")
		oBibli = DialogLibraries.GetByName("Standard")
		oDialog = oBibli.GetByName("Dialog1")
		oDlg = CreateUnoDialog(oDialog)
		oDlg.execute()
    		Ecoute_notifyContextMenuExecute = nAnnule
	else
		Ecoute_notifyContextMenuExecute = nIgnore
  	endif
End Function
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour Dude,
Merci pour ces explications complémentaires
Je comprends bien le fonctionnement dans le fichier proposé
Seulement lorsque je veux reporter dans mon fichier (quelques posts ci-dessus) les deux macros, ça plante notamment sur les instructions suivantes :

Code : Tout sélectionner

oFeuil = oEvt.Selection.getModel()
  oSelection = oFeuil.getCurrentSelection()
  sSelect = oSelection.AbsoluteName
Sans doute, un problème de définition que je n'arrive pas à résoudre.
A part ce problème, tout fonctionne sur mon fichier (et sur des gros volumes) :

L'affichage des informations sur le click droit (avec le petit problème de menu contextuel qui n'est pas résolu)
Le lien vers les registres d'Etat Civil en ligne
La navigation dans l'arbre avec un double click sur un individu
Le retour à l'individu source
Encore Merci pour ce que vous faîtes (et la patience que cela nécessite)
Cordialement
Marc
Dernière modification par Oukcha le 19 avr. 2025 06:50, modifié 1 fois.
Raison : Balises [code] et [/code] = lecture et sélection simplifiées de votre macro
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

Bonsoir,
chalet53 a écrit : 18 avr. 2025 13:58L'affichage des informations sur le click droit (avec le petit problème de menu contextuel qui n'est pas résolu)
Le document de Dude fonctionne pourtant comme attendu.
Pas de menu contextuel après le clic droit sur C4.
Est-ce qu'il fonctionne chez vous ?
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour Dolev

Je suis tout à fait d'accord : les macros de Dude fonctionnent très bien
Comme je le dis dans mon message, c'est l'intégration dans mon fichier ci-dessus (Post 3 ou 4) que je n'arrive pas à faire
Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

Re,
chalet53 a écrit : 19 avr. 2025 05:34 c'est l'intégration dans mon fichier ci-dessus (Post 3 ou 4) que je n'arrive pas à faire
Ca n'aide pas à vous aider comme phrase. Fournissez le document qu'on regarde pourquoi vous avez une erreur.
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour Dolev,

Je le rejoins bien qu'il soit déjà présent dans cette discussion (en 6 ou 7ème post)
Cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

Pouvez-vous faire un effort dans les explications. :?
Je ne vois pas de différence avec le 1er document.
Dans quel module se trouve la macro et comment arriver à votre erreur ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Re,
Ce fichier est une réduction d'un fichier beaucoup plus gros (arbre généalogique)
Le Click droit dans la cellule E6 (Rose Marquet) affiche une boite de dialogue qui donne des informations sur la personne et permet également l'accès au registre d'état civil pour retrouver : Acte de naissance, de décès, de mariage
Le problème intervient lorsque je quitte cette boîte de dialogue : un menu contextuel apparait à côté de la cellule E6
C'est cela que je veux supprimer. Le fichier proposé par Dude correspond à ce je souhaite
Mon problème : je n'arrive pas à intégrer sa proposition dans mon fichier
Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

chalet53 a écrit : 19 avr. 2025 14:06 Mon problème : je n'arrive pas à intégrer sa proposition dans mon fichier
Pourtant vous indiquez :
chalet53 a écrit : 18 avr. 2025 13:58 Seulement lorsque je veux reporter dans mon fichier (quelques posts ci-dessus) les deux macros, ça plante notamment sur les instructions suivantes
Pourrait-on avoir ce fichier SVP ?
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Re,
Pas de souci : c'est la troisième fois que je le publie sur cette discussion (6ème et 16ème message
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

Dans ce document, où se trouve les macros permettant d'avoir l'erreur que vous décrivez :
chalet53 a écrit : 18 avr. 2025 13:58 lorsque je veux reporter dans mon fichier (quelques posts ci-dessus) les deux macros, ça plante notamment sur les instructions suivantes
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Re,
L'exemple fourni par Dude (Clic_droit_sur_dialogue.ods) réalise ce que je cherche à faire dans mon fichier test EssaiBdDialogueBis.ods pour supprimer le menu contextuel qui apparaît à côté de la cellule E6 quand je quitte l'application
La solution proposée par Dude n'est pas intégrée dans mon fichier car je ne sais pas comment le faire.
Je joins à nouveau les fichiers (j'ai notamment supprimé dans mon fichier les modules inutiles)
Cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17187
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Calc] Faire disparaître le menu contextuel

Message par jeanmimi »

Bonjour,
Je suppose que c'est ce Menu contextuel qui apparait à la fermeture de la Boite de dialogue :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour Jeanmimi

Oui c'est bien cela
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

Re,

Vous auriez pu au moins copier coller le code. :marto:
Il suffit ensuite d'adapter la cellule qui écoute et l'appel vers votre dialogue.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Bonjour Dolev,
Encore merci pour le temps consacré à mon problème
Cela fonctionne pour la cellule E6 après avoir lancé la macro lanceMoi
Pour que cela fonctionne, il faut faire Click droit sur le nom de l'onglet ARBRE
Le click droit semble appeler la macro Rech_Donnees : Comment on associe le click droit à cette macro (peut-être dans la gestion évènementielle liée à la feuille mais je ne trouve pas)
De même le click sur Quitter (qui n'a pas de macro associée. Seul le type de bouton (Annuler) semble fermer la boîte de dialogue).Comment la fonction : Ecoute_notifyContextMenuExecute(oEvt) est-elle appelée pour annuler le menu contextuel ?
Je suis preneur d'une explication sur l'enchainement des programmes

Mon problème est un peu plus complexe : pour formuler ma demande, j'ai réduit la feuille au strict minimum pour rester dans la taille autorisée
S'agissant d'un arbre généalogique, dans cette feuille, il y a une soixantaine de cellules pour lesquelles j'affiche par un click droit les informations des individus concernés
Peut-être une piste : au lieu de se limiter à la cellule E6, peut-on remplacer par une plage de cellules : A1: G23 (pour laquelle on annule le menu contextuel.

Cordialement
Marc
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

Re,
chalet53 a écrit : 20 avr. 2025 13:30 Cela fonctionne pour la cellule E6 après avoir lancé la macro lanceMoi
Pour que cela fonctionne, il faut faire Click droit sur le nom de l'onglet ARBRE
Vous pouvez toujours lancer la macro au démarrage du document (menu Outils > Personnaliser > Evénements).
Ensuite le choix de la cellule est celle que vous indiquez.
chalet53 a écrit : 20 avr. 2025 13:30Mon problème est un peu plus complexe
Si le problème évolue, vous ouvrez un nouveau fil avec un document permettant de reproduire.
Merci d'indiquer que c'est résolu.
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

Re,
Pour moi, le problème n'est pas complètement résolu.
C'est un click droit sur la cellule E6 que je veux et qui déclenche l'ensemble des évènements attendus ( affichage de la boîte de dialogue avec les informations relatives à la personne présente dans cette cellule. Ensuite la sortie de cette boîte par le bouton Quitter déclenche une procédure qui élimine le menu contextuel.
Dans mon esprit, ce qui est possible par un click droit sur E6 doit permettre le même process si je clique sur une autre cellule (où sera également mentionné le nom d'une personne)
Dans l'exemple proposé, il faut cliquer sur le nom de la Feuille ARBRE

Or un click droit sur le nom de l'onglet nécessite que, préalablement, soit sélectionnée la cellule active : Si j'ai un nom en H6 (comme dans mon fichier complet), un click droit sur H6 doit produire le même résultat qu'un click droit sur E6
Cordialement
Libre Office 25.2 sous Windows
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1141
Inscription : 19 août 2018 05:20

Re: [Calc] Faire disparaître le menu contextuel

Message par Dolev »

chalet53 a écrit : 20 avr. 2025 14:49 Si j'ai un nom en H6 (comme dans mon fichier complet), un click droit sur H6 doit produire le même résultat qu'un click droit sur E6
Dans le document fourni, il n'y a pas cette nouvelle information. Donc...
Dolev a écrit : 20 avr. 2025 14:12 Si le problème évolue, vous ouvrez un nouveau fil avec un document permettant de reproduire.
Maintenant, il vous suffit d'adapter la partie où on interroge la cellule pour que soit prise en compte sans doute la ligne 6.
Open Office 4.1.15 sous Windows 11
chalet53
NOOuvel adepte
NOOuvel adepte
Messages : 23
Inscription : 16 avr. 2025 13:43

Re: [Calc] Faire disparaître le menu contextuel

Message par chalet53 »

re
Dans le fichier que vous m'avez proposé (4 discussions plu haut), après avoir lancé la macro LanceMoi, il ne se passe rien si je fais un click droit sur E6. c'est en faisant un click droit sur le nom de la feuille que se déclenche la procédure (condition préalable : que la cellule E6 soit active)
Ce n'est pas gérable si je dois, pour un nom en H6, d'abord activer cette cellule et ensuite faire un click droit sur le nom de la feuille

J'aimerai comprendre où se définit le déclenchement de la macro qui s'exécute en faisant le click droit sur le nom de la feuille
Libre Office 25.2 sous Windows