[Résolu][Calc] double clic sur cellule pour afficher des valeurs successives

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 !
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

[Résolu][Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Bonjour à tous, et merci de me lire.
Pour introduire le sujet, je suis enseignant et je travaille sur un fichier qui reprend toute une (belle) série de compétences que je dois évaluer.
Cela fait plusieurs jours que je cherche sur ce forum et j'ai trouvé une macro qui me convient et que j'ai su un peu modifier pour qu'elle me corresponde parfaitement...

Ceci dit, elle me pose quand même problème(s): je n'arrive pas à l'appliquer à la deuxième page ( UAA2 ) et je souhaite encore faire une troisième page ( avec beaucoup plus de compétences,
Test1 UAA.ods
est en cours de rédaction )

Code : Tout sélectionner

REM  *****  BASIC  *****

sub PointePresence
oDoc = Thiscomponent
selection = oDoc.CurrentSelection
if selection.supportsService("com.sun.star.table.Cell") Then
	wait 300
end if
oPlagRef = oDoc.NamedRanges.GetByName("cpt")
If selection.queryIntersection(oPlagRef.ReferredCells.RangeAddress).Count = 0 Then exit sub
	
select case selection.String

	case "" 
		selection.cellbackcolor = &h00ff00
		selection.SetString("A")
			
	case "A"	 
		selection.cellbackcolor = &hff0000
		selection.SetString("N/A")
			
	case "N/A"
		selection.cellbackcolor = &hffffff
		selection.SetString("")
			
			

	end Select

end Sub
Je ne sais pas si je dois dire toutes les fonctionnalités que j'attend de ce fichier, ou une par une?
Donc l'idée est de faire un double clic sur la case correspondante à l'élève et la compétence pour que successivement apparaisse un "A" en vert, suivi d'un "N/A" en rouge, suivi d'un retour a la case blanche (remplissable), ca fonctionne nickel pour la page "UAA1"!

Je souhaiterais donc avoir les mêmes possibilités sur les pages "UAA2" et "UAA3".

Je me demande également si il est possible en cliquant ou en plaçant le curseur, sur une case dans la ligne 3, ( comportant la numérotation de la compétence ) de faire apparaitre la compétence complète ( en regard du même numéro à partir de la ligne 18 ) quelque part plus haut dans le classeur et de pouvoir basculer sur une autre case de la même ligne 3? Et ce pour chaque page?

Enfin, est-il possible de "générer" dans une dernière page, l'ensemble des compétences "N/A" par élèves, et de pouvoir l'exporter dans un autre document? ( Rapport de compétences non acquises )? Avec son numéro et sa dénomination?

Merci de vos conseils et astuces :bravo:
Je précise quand même que suis plus que débutant :fou:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par nicomk1 le 30 nov. 2023 13:26, modifié 3 fois.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12659
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: Tableur de compétences

Message par Bidouille »

Bonjour,
nicomk1 a écrit : 29 nov. 2023 07:03 et j'ai trouvé une macro qui me convient et que j'ai su un peu modifier pour qu'elle me corresponde parfaitement...
Encore une fois, lisez le descriptif des sections pour poster au bon endroit.
Fil logiquement déplacé en section Macros.
Notez le balisage obligatoire (bandeau rouge en haut de la page) et que le titre doit refléter le problème exposé.

Pour être aidé efficacement par les bénévoles et surtout leur faire gagner du temps, veuillez fournir les éléments suivants :
  1. insérer dans le corps du message le code de la macro exposant le problème
  2. joindre un document explicatif intégrant cette macro avec les données de départ (feuille1) et le résultat à obtenir (feuille2)
  3. fournir un mode pas-à-pas permettant de reproduire ce qui a été fait ou ce que vous cherchez à faire pour arriver au problème
  4. ajouter des copies écran (situation avant / après) si cela permet de mieux comprendre
Merci de publier ces informations à la suite.
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Jurassic Pork »

Hello,
Voici des améliorations à apporter à ton programme.
1 - Au lieu de définir une plage nommée cpt au niveau document en définir une pour chaque feuille :
PlagesUAA.png
Pour chaque feuille il faut aussi pointer le double clic sur la macro PointePresence

2 - Utiliser l'argument qui arrive avec l'événement pour récupérer la source de l'événement.
3 - Utiliser la fonction RGB pour définir les couleurs des cellules

Voici la macro modifiée :

Code : Tout sélectionner

sub PointePresence( oEvt)
    Dim oCell As Object, oPlageRef As Object, Feuille As Object
        Feuille =  ThisComponent.currentController.activeSheet
	oCell = Feuille.getcellrangebyname(oEvt.AbsoluteName)  
	if oCell.supportsService("com.sun.star.table.Cell") Then
    	     wait 300
        end if
       oPlagRef = Feuille.NamedRanges.GetByName("cpt")
       If oCell.queryIntersection(oPlagRef.ReferredCells.RangeAddress).Count = 0 Then exit sub
	
      select case oCell.String

	case "" 
		oCell.cellbackcolor = RGB(0,255,0)
		oCell.SetString("A")
			
	case "A"	 
		oCell.cellbackcolor = RGB(255,0,0)
		oCell.SetString("N/A")
			
	case "N/A"
		oCell.cellbackcolor = RGB(255,255,255)
		oCell.SetString("")
						
      end Select

end Sub
Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Ca à l'air super mais je ne sais pas déjà ou gérer les noms ( j'ai dit que j'étais nul hein ;-) )
Noms cellules.jpg
Maintenant si une solution existe pour attribuer la macro à une plage de cellules sur plusieurs pages, je suis preneur ... je cherche sur le forum mais j'ai 304 sujets répondant à ma recherche ... je continue donc...

Est-il possible de changer le nom "Pointpresence" quand je le change ...ben ça fonctionne plus du coup...
Test UAA.jpg
Petite question, pourquoi les couleurs doivent être en RGB?

Meeeeeeeeeeeeerrrrrrrrrcccccccccccccciiiiiiiii
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Jurassic Pork »

1- Menu Feuille/Plages ou Expressions nommées/Gérer.
2 - Chez moi sous LibreOffice ton code pour mettre une cellule en vert ne fonctionne pas, avec RGB cela fonctionne.
3 - Si tu changes le nom de la macro à appeler, il faut la redéfinir dans Feuille/Evénements de la Feuille/Double-Clic (A faire pour chaque feuille).
Et si tu n'utilises pas mon code cela ne fonctionnera pas avec des plages feuille.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Je comprends déjà mieux le pourquoi des couleurs.
Et certainement aussi pourquoi je n'ai pas ce menu
Menu Feuille/Plages ou Expressions nommées/Gérer.
mais bien
Menu.jpg
.
Si nous n'avons pas le même programme ... :D
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Jurassic Pork »

:aie: En effet la gestion des plages nommées semble différente entre LibreOffice et OpenOffice, je ne retrouve pas mes plages nommées Feuille quand j'ouvre mon document créé sous LibreOffice, sous OpenOffice. Pas de plages de données Feuille sous OpenOffice ?
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

Jurassic Pork a écrit : 29 nov. 2023 13:33 Pas de plages de données Feuille sous OpenOffice ?
Bien sûr que si : Ctrl + F3
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Sauf que là, on ne sait pas ajouter une plage sur plusieurs feuilles mais sur une seule... Il me semble ... :?

Je viens de trouver un truc ici ... viewtopic.php?t=33271&hilit=macro+sur+p ... s+cellules

Je vais déjà essayer ça ... :idea:

Sauf que je n'ai aucune idée d'où je dois mettre ça ...
Dernière modification par nicomk1 le 29 nov. 2023 14:03, modifié 1 fois.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

Franchement, je ne vois pas l'intérêt du truc alors qu'on peut se passer de macro avec une liste de validité.
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Possible j'en sais rien en fait ... explique ...

C'est ça? viewtopic.php?f=29&t=22412
Purée le nombre de compétences multipliés par le nombre d'élèves et ce encore avec trois choix...
Ca en fait des clics :-(
Dernière modification par nicomk1 le 29 nov. 2023 14:24, modifié 2 fois.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

en même temps;-)
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Jurassic Pork »

Dude a écrit : 29 nov. 2023 13:40
Jurassic Pork a écrit : 29 nov. 2023 13:33 Pas de plages de données Feuille sous OpenOffice ?
Bien sûr que si : Ctrl + F3
ce que j'appelle plage de données Feuille, c'es une plage de données avec une Etendue Feuille. IL ne semble y avoir d'étendues dans OpenOffice. D'ailleurs cette instruction :

Code : Tout sélectionner

oPlagRef = Feuille.NamedRanges.GetByName("cpt")
provoque une erreur sous OpenOffice pas sous LibreOffice
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

Code : Tout sélectionner

oPlagRef = Feuille.NamedRanges.GetByName("cpt")
La propriété NamedRanges est disponible à partir du classeur (SpreadsheetDocument) et pas de la feuille.
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Donc ça ne m'avance pas du coup ... :marto:
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

nicomk1 a écrit : 29 nov. 2023 15:21 Donc ça ne m'avance pas du coup
Qu'est ce qui ne va pas avec les listes de validité ?
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

On parle bien de ceci :?
Liste validité.jpg
Si je dois avoir ça avec à chaque fois trois propositions, une liste par compétences et ce pour chaque élèves, j'imagine même pas le nombre de clics

Ou j'ai pas compris?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1502
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par DLE »

Bonjour,
Mes deux sous avec cette macro
définir la plage cpt2 sur feuille UAA2

Code : Tout sélectionner

sub PointePresence(oEvent)
oDoc = Thiscomponent
selection = oDoc.CurrentSelection
Dim sAdres() As String

sAdres = split(oEvent.absoluteName,".",2)
sNom =  right(sAdres(0),len(sAdres(0))-1) 
if  sNom = "UAA2" then 
	sPlage = "cpt2"
else
	sPlage = "cpt"
end if

if selection.supportsService("com.sun.star.table.Cell") Then
	wait 300
end if
oPlagRef = oDoc.Sheets.getByName(sNom).GetCellRangeByName(sPlage)
If selection.queryIntersection(oPlagRef.RangeAddress).Count = 0 Then exit sub
	
select case selection.String

	case "" 
		selection.cellbackcolor = &h00ff00
		selection.SetString("A")
			
	case "A"	 
		selection.cellbackcolor = &hff0000
		selection.SetString("N/A")
			
	case "N/A"
		selection.cellbackcolor = &hffffff
		selection.SetString("")
			
			

	end Select

end Sub
MacOS Sequoia 15.5 (iMac-Intel) : AOO 4.1.15 , LibreOffice 24.8.5.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 10 & MacOS : AOO, Libreoffice.
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Donc je dois créer un nouveau module ( macro ) avec tout ce code, ou je dois l'ajouter à module1?
Open Office V 4.1.14
Windows 11
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Erreur.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1140
Inscription : 19 août 2018 05:20

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dolev »

Bonsoir,

La propriété AbsoluteName n'est pas disponible depuis un événement.
Il faut passer par Source d'abord.

Vous devriez installer et utiliser XRay pour éviter de bloquer sur ce genre d'écueil.
Open Office 4.1.15 sous Windows 11
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Je suis à nouveau perdu là ... Merci quand même :P

Bon rien à faire, j'ai encore trouvé des trucs mais je n'y comprend vraiment pas grand choses...
Sinon , comment faire exécuter une macro à une certaine plage de cellules?
Une idée?
Dernière modification par nicomk1 le 30 nov. 2023 05:43, modifié 1 fois.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

nicomk1 a écrit : 29 nov. 2023 17:33 mais je n'y comprend vraiment pas grand choses
Dude a écrit : 29 nov. 2023 14:02 on peut se passer de macro avec une liste de validité
no_problemo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1502
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par DLE »

Bonjour,
Vous devez associer la macro à l'évènement "Double clic" sur la feuille "UAA2", comme sur la feuille "UAA1", d'où la source de l'erreur.
Double_clic.gif
Capture d’écran 2023-11-30 à 09.25.26.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
MacOS Sequoia 15.5 (iMac-Intel) : AOO 4.1.15 , LibreOffice 24.8.5.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 10 & MacOS : AOO, Libreoffice.
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

Purée j'adore, mais l'extension là (Xray) je vais devoir l'installer sur chaque PC avec lequel je dois modifier le fichier?

La liste de sélection est superbe aussi, mais est-il possible d'introduire quand même quelques chose à la place? comme du texte et de manière aléatoire ?

J'ai aussi résolu ma question de faire apparaitre les compétences en regard des chiffres en haut ( j'ai mis des commentaires ) :marto:

J'ai encore d'autres problèmes maintenant je recherche cela aussi ... quelle galère.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1502
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par DLE »

nicomk1 a écrit : 30 nov. 2023 09:14 Purée j'adore, mais l'extension là (Xray) je vais devoir l'installer sur chaque PC avec lequel je dois modifier le fichier?
Non, sur un seul PC suffit, le temps de mettre au point la macro.
Xray est un outil pour le programmeur de macros Basic qui utilise l’API Apache OpenOffice. Il a pour but de visualiser les propriétés, méthodes, services, interfaces, disponibles sur une variable objet. Il utilise pour cela les fonctions d’introspection et de réflexion disponibles pour tout objet Uno.
MacOS Sequoia 15.5 (iMac-Intel) : AOO 4.1.15 , LibreOffice 24.8.5.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 10 & MacOS : AOO, Libreoffice.
nicomk1
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 24 juin 2022 16:12

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par nicomk1 »

J'y suis et je crois être au bon endroit, mais cette ligne n'apparait pas chez moi...
Xray.jpg
J'ai mal de tête :fou:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office V 4.1.14
Windows 11
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1502
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par DLE »

Dans le fichier "Test2 UAA" vous n'avez pas affecté la macro à l'évènementt "Double clic" sur les feuilles "UUA2" et "UAA3". D'autre part ce n'est pas la macro que j'ai mise précédemment.
MacOS Sequoia 15.5 (iMac-Intel) : AOO 4.1.15 , LibreOffice 24.8.5.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 10 & MacOS : AOO, Libreoffice.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] double clic sur cellule pour afficher des valeurs successives

Message par Dude »

Installer XRay ne fait pas tout. Il faut prendre le temps de lire la documentation fournie.
De ce que je constate, tu interroges l'objet ThisComponent qui est ton classeur.
Il est donc normal que tu n'aies pas les mêmes propriétés affichées.
Ensuite, tu as mal recopié le code de DLE. Il y a réception d'un objet oEvent en début de routine.
C'est lui que tu dois inspecter.
nicomk1 a écrit : 30 nov. 2023 09:14 La liste de sélection est superbe aussi, mais est-il possible d'introduire quand même quelques chose à la place? comme du texte et de manière aléatoire ?
Tu peux en saisissant directement la donnée dans la barre de formule (F2).
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues