[Résolu][Calc]Gestion événement de feuille Sélection modifiée

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 !
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

[Résolu][Calc]Gestion événement de feuille Sélection modifiée

Message par Denis4085 »

Bonsoir,

petit souci de compréhension quand à ce qui se passe lorsqu'on rattache une macro à un évènement de type "sélection modifiée" ...
Ça devient vite le why sur la feuille de calcul, où tel que j'ai "codé", ne serait-ce qu'un mouvement de souris me rappelle la macro.
En outre, je remarque que malgré mes tentatives de ne pas passer plusieurs fois dans la procédure pour un même évènement, rien n'y fait.

Alors dit comme ça c'est très vague mouaih :aie:
Le but ultime est de détecter lorsque l'utilisateur (moua) sélectionne un plage de cellule nommée, en passant par la liste de sélection de plage à gauche de la barre de formule, là où sont enregistrées les plages nommées.
Mais déjà je voudrais un code propre qui quitte au premier passage dès lors que la sélection ne concerne pas la plage que je cible, et qui quitte aussi en cas de plage cible sélectionnée (la nommée) , après petit traitement (sans repasser car je sais que la procédure est appelé plusieurs fois et je ne me l'explique pas).

Voici le code:

Code : Tout sélectionner

dim last_selected as string

Sub Main (evt as object)

 
 if not evt.SupportsService("com.sun.star.table.CellProperties") then exit sub
 msgbox "evt: " & evt.absolutename & " last_selected: " & last_selected
 If evt.absolutename = last_selected Then
  exit sub ' Ignorer si la même cellule est sélectionnée
 else
  msgbox "visiblement ils étaient différents: " & last_selected & " tandis que evt: " & evt.absolutename
  last_selected = evt.absolutename
 End If
 
 dim what, sowhat as string
 what = evt.absolutename
 
 msgbox " what : " & what
 sowhat = getnamedrangebyname("made_of_sand").content

 if what = sowhat then
  msgbox "made_of_sand sélectionné"
 else
  exit sub
 end if

End Sub

Function GetNamedRangeByName(rangeName As String) As Object
    Dim oDoc As Object
    Dim oNamedRanges As Object
    Dim oNamedRange As Object

    ' Accéder au document et à la collection des plages nommées
    oDoc = ThisComponent
    oNamedRanges = oDoc.NamedRanges

    ' Vérifier si la plage nommée existe
    If oNamedRanges.hasByName(rangeName) Then
        oNamedRange = oNamedRanges.getByName(rangeName)
        GetNamedRangeByName = oNamedRange ' Retourner l'objet plage nommée
    Else
        GetNamedRangeByName = Null ' Retourner Null si la plage n'existe pas
    End If
End Function
et je joins un fichier test, ... NB: fermer vos autres documents parce que ça bugue sévère :shock:
hop_one_beach.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Denis4085 le 21 janv. 2025 09:05, modifié 3 fois.
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9821
Inscription : 28 août 2010 08:45

Re: [Calc]Gestion par macro d'Évenement sur feuille de type Selection modifiée problématique à coder

Message par micmac »

Bonjour,

Vous postez dans la section dédiée aux macros, le titre de votre sujet ne doit pas comporter le terme macro qui y est inutile. Veuillez le reformuler.
Merci
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Denis4085 »

Il est bien comme ça le titre, super :super:
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1140
Inscription : 19 août 2018 05:20

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Dolev »

Bonjour,

Interroger l'objet evt avec Xray, vous verrez les services suivant le contexte d'appel.
J'ai un doute sur les propriétés que vous évoquez. En principe, il faut récupérer d'abord .Source
Open Office 4.1.15 sous Windows 11
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Denis4085 »

bonsoir et merci,
oui j'ai vu xray, installé et testé, ça ne me convient pas ou j'ai trop survolé, je n'ai pas vu plus d'info que ce que j'obtiens en plaçant des points d'arrêt et des témoins avec l'éditeur de macros. D'ailleurs, j'ai trouvé que xray était une vraie machine à exploser les yeux. Le choix de la police, bonjour :marto:

j'ai changé d'approche en fait, il me semble que la gestion de ce type d'évènement est beaucoup trop complexe et franchement la doc je salue le boulot mais c'est sans doute une réplique de l'anglais (simple traduction) et les anglais produisent des documentations à s'arracher les cheveux en général ... très mal, j'ai pas l'esprit pour.

je suis parti sur une approche différente et ça s'emboîte bien :P
Libres à vous de supprimer ce fil, je le déclare obsolète :mrgreen:
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1140
Inscription : 19 août 2018 05:20

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Dolev »

Denis4085 a écrit : 18 janv. 2025 19:01 je n'ai pas vu plus d'info que ce que j'obtiens en plaçant des points d'arrêt et des témoins avec l'éditeur de macros.
Comment voyez-vous ceci :
Capture d’écran 2025-01-18 213104.png
Denis4085 a écrit : 18 janv. 2025 19:01
je suis parti sur une approche différente et ça s'emboîte bien
C'est à dire ? Pourquoi ne pas donner cette solution ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.15 sous Windows 11
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Denis4085 »

Dolev a écrit : 18 janv. 2025 20:13Comment voyez-vous ceci :
Oui c'est plus lisible en allant configurer la police (taille, largeur) de la fenêtre Xray
xray_screensh.png
Dolev a écrit : 18 janv. 2025 20:13C'est à dire ? Pourquoi ne pas donner cette solution ?
Mais parce que ça n'a plus rien à voir, pour info:
Je cherchais un évènement déclencheur pour lancer un calcul "global" de tout ce qu'il y a à calculer à partir des données déjà saisies.

j'envisageais que cet évènement puisse-t-être une sélection de la plage de cellule nommée où se trouve les données à traiter (sélection en passant par petit champs "gérer les noms" à gauche de barre de formule).

je ne cherche plus à faire un traitement "global", mais ligne par ligne déjà d'une part, et puis si je veux un traitement "global" (qui recalcule et ré-affiche tout ben je ferai une macro dédiée). Dans cette optique, je ne suis même plus concerné par mon fil :lol:

ps: oui c'est sans doute bien Xray faudrait que je me penche sur la petite doc et que j'explore les fonctionnalités mais ... (le temps peut-être).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4259
Inscription : 06 oct. 2008 08:03

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Oukcha »

Sujet résolu ?
  • Placez-vous sur le premier message de votre fil de discussion
  • En haut à droite de ce message, cliquez sur le bouton du petit crayon pour éditer.
  • Modifiez le titre du message en cochant l'icône Image et en tapant [Résolu] (respectez la graphie donnée) comme illustré ci-dessous :

    Image
Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Denis4085 »

nan, sujet évité.
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9821
Inscription : 28 août 2010 08:45

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par micmac »

Bonjour,
Denis4085 a écrit : 18 janv. 2025 19:01 ça ne me convient pas ou j'ai trop survolé
Denis4085 a écrit : 18 janv. 2025 19:01 j'ai changé d'approche en fait,
Denis4085 a écrit : 18 janv. 2025 19:01 Libres à vous de supprimer ce fil, je le déclare obsolète
Denis4085 a écrit : 18 janv. 2025 19:01 nan, sujet évité.
Quoi que vous en pensiez, un sujet abandonné doit être clôturé ; et selon les règles du forum la procédure à respecter est celle rappelée par le modérateur précédent.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Calc]Gestion événement de feuille Sélection modifiée

Message par Denis4085 »

Denis4085 a écrit : 19 janv. 2025 05:43 ps: oui c'est sans doute bien Xray faudrait que je me penche sur la petite doc et que j'explore les fonctionnalités mais ... (le temps peut-être).
Oui j'infirme, c'est pas mal du tout Xray 8)
LibreOffice 7.4.7.2 sous Linux Debian 12.8