[Résolu][Calc] Listener sur rappel des éléments d'une table dynamique

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 !
cedric86fr
Membre OOrganisé
Membre OOrganisé
Messages : 85
Inscription : 22 avr. 2022 13:28

[Résolu][Calc] Listener sur rappel des éléments d'une table dynamique

Message par cedric86fr »

Bonsoir,

J'aimerais que la macro de "MiseEnForme" du fichier se déclenche lorsque je double-clique sur le rappel des éléments d'une table dynamique.

Par exemple pour la case C2.

Comment peut-on s'y prendre ?

Merci pour vos pistes ou bout de code.

Cédric
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par cedric86fr le 02 oct. 2024 07:29, modifié 1 fois.
Libreoffice 7.2.7.2.M7 (x64) (obligation de version) sur Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Listener sur rappel des éléments d'une table dynamique

Message par Dude »

Salut,
cedric86fr a écrit : 30 sept. 2024 17:19 se déclenche lorsque je double-clique
Il faut se servir de l'événement de feuille idoine et brancher ta macro dessus :

Image

Cependant si tu fais ça, tu interceptes ce que fait Calc pour activer le rappel des éléments.
cedric86fr
Membre OOrganisé
Membre OOrganisé
Messages : 85
Inscription : 22 avr. 2022 13:28

Re: [Calc] Listener sur rappel des éléments d'une table dynamique

Message par cedric86fr »

Salut Dude,

J'ai suivi ton conseil mais en l'état la macro se lance sur l'onglet de la table dynamique dans laquelle je double-clique, et pas sur le nouvel onglet créé lors du rappel des éléments.

Je ne sais pas trop comment faire pour :
- cibler l'onglet créé par le rappel d'élément
- et cibler uniquement celui-ci : si je demande plusieurs rappels d'éléments j'aimerais que la macro de mise en forme s'applique une seule fois par onglet (je pensais compter le nombre de feuille, dans le cas présent j'ai 2 feuilles, et rajouter une condition pour lancer une boucle tant que j'ai un index de feuilles > 2 et appliquer la mise en forme, mais bof)
 Ajout :  J'ai ajouté le code suivant au début de la macro dans le fichier V2

Code : Tout sélectionner

NbFeuilles = ThisComponent.Sheets.count
Msgbox NbFeuilles

REM neutralise un double-clic dans la feuille hors rappel d'éléments de la table dynamique
If NbFeuilles < 3 Then
	Msgbox "on ne fait rien"
Else
	For i = 2 to NbFeuilles -1
	oFeuil = ThisComponent.sheets(i)
	ThisComponent.CurrentController.ActiveSheet = oFeuil
	Msgbox "Mise en forme de l'onglet" & i+1
Next i
End if
Au delà du fait de repasser plusieurs fois sur la même feuille si j'ai au moins 2 rappels d’éléments, je rencontre les 2 problèmes suivants :
- l'évènement de la feuille "double-clic" lance la macro immédiatement sur l'onglet table dynamique et n'attend pas la création de la feuille3 (donc l'onglet lié au rappel d'élément n'est pas créé ou la mise en forme s'applique sur la mauvaise feuille ).
- si je désactive l'évènement de la feuille, l'onglet feuille3 est positionné entre les 2 onglets existants et pas en dernière position (la macro fonctionne si le décale la feuille 3 en dernière position). 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.2.7.2.M7 (x64) (obligation de version) sur Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Listener sur rappel des éléments d'une table dynamique

Message par Dude »

C'est toujours le même problème.
Le nouveau TCD est construit après l'exécution de la macro appelée par l'événement.
Tout formatage de la feuille est de toute façon écrasé ensuite.
Donc sauf à construire ce TCD formaté dans la macro, je ne vois pas de solution simple.
cedric86fr
Membre OOrganisé
Membre OOrganisé
Messages : 85
Inscription : 22 avr. 2022 13:28

Re: [Calc] Listener sur rappel des éléments d'une table dynamique

Message par cedric86fr »

J'ai ajouté une icône en fin de barre d'outil pour lancer la mise en forme.

Je passe en résolu, merci pour ton aide.

a+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.2.7.2.M7 (x64) (obligation de version) sur Windows 10