[Calc] Signification de oEvt.supportsService

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 !
Otermale
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 31 mars 2023 07:58

[Calc] Signification de oEvt.supportsService

Message par Otermale »


La modération vous a écrit: Titre modifié pour plus de clarté.
Veillez-y par vous-même la prochaine fois. Un titre explicite n'est pas pour vous mais pour ceux effectuant ensuite des recherches dans ce forum.

Bonjour à tous,

Quelqu'un pourrait il m'éclairer sur cet étrange objet "oEvt.supportsService("com.sun.star.sheet.SheetCell")", s'agit il d'une sous routine, en existe-t-il d'autre du genre, bref, existe-t-il un post ou un PDF qui pourrait m'éclairer sur ce sujet?

Merci à tous et bon dimanche.

Otermale
AOO4114m1(Build:9811) - Rev. a0d24fb625
2023-02-08 19:47

Windows 10
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1823
Inscription : 15 déc. 2010 08:33

Re: [Calc] oEvt.supportsService

Message par yclik »

bonsoir
une piste Page 19
OpenOffice 4.1.14 sous Windows 11
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2791
Inscription : 16 avr. 2010 13:31

Re: [Calc] oEvt.supportsService

Message par OOotremer971 »

Bonjour,
Otermale a écrit : 27 avr. 2025 14:01 Quelqu'un pourrait il m'éclairer sur cet étrange objet "oEvt.supportsService("com.sun.star.sheet.SheetCell")"
Très certainement si tu précises le contexte d'utilisation

oEvt, correspond généralement à l'objet passé en argument à une routine :

Code : Tout sélectionner

Sub MachinChose(oEvt)
xray oEvt ' à condition d'avoir installé xray
End Sub 

Code : Tout sélectionner

if oEvt.supportsService("com.sun.star.sheet.SheetCell") then
retourne true si il s'agit d'une cellule

Code : Tout sélectionner

if oEvt.supportsService"com.sun.star.sheet.SheetCellRanges") then
retourne true si il s'agit d'une sélection de plusieurs plages de cellules

Code : Tout sélectionner

if oEvt.supportsService("com.sun.star.table.CellRange") then
retourne true si il s'agit d'une seule plage de cellules

Code : Tout sélectionner

if oEvt.supportsService("com.sun.star.table.Cell") then
retourne true si il s'agit d'une seule cellule

https://www.openoffice.org/api/docs/com ... tCell.html
https://www.openoffice.org/api/docs/com ... anges.html
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian GNU/Linux 12 (bookworm)
Otermale
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 31 mars 2023 07:58

[Calc] Signification de oEvt.supportsService

Message par Otermale »

Bonjour,
Tout d'abord merci de vos réponses, j'entrevois un début d'éclaircissement. :super:

Ce qui m'a fait poser cette question, c'est ce petit bout de programme ci-dessous, qui semble-t-il vérifie si le contenu d'une cellule à changé, et ensuite prend les actions nécessaires au traitement.

J'imagine que "oEvt" fait appel à un genre de routine "Evénement", qu'ensuite "supportsService("com.sun.star.sheet.SheetCell")" identifie la partie de la "routine" à laquelle on fait appel.


"

Code : Tout sélectionner

Option VBASupport 1
option explicit

Sub PysOnChange(oEvt)

dim oPlage as object, oResult as object,  oSheet as object, oCell as object
dim Tablo as variant
dim lRow as long, lCol as Long, i as long
   
if oEvt.supportsService("com.sun.star.sheet.SheetCell") then
	oPlage = oEvt.spreadSheet.getCellRangeByname("K11:K25")
	oResult = oEvt.queryIntersection(oPlage.RangeAddress)
	If oResult.RangeAddressesAsString <> "" Then 
		oSheet = thiscomponent.currentController.ActiveSheet
		lCol = oEvt.getCellAddress.column
		lRow = oEvt.getCellAddress.row
		Tablo = Sheets("liste adhérents").Range("A2:E201")		
		For i = LBound(Tablo, 1) To UBound(Tablo, 1)		
			If oEvt.formula = Tablo(i, 2) Then
				oCell = oSheet.getCellByPosition(lCol -8, lRow)
				oCell.formula = Tablo(i, 2)
				oCell =oSheet.getCellByPosition(lCol -7, lRow)
				oCell.formula = Tablo(i, 1)
				oCell =oSheet.getCellByPosition(lCol -6, lRow)
				oCell.formula = Tablo(i, 4)
				oCell = oSheet.getCellByPosition(lCol -5, lRow)
				oCell.formula = Tablo(i, 3)
			    Exit For		
			End If		
		Next i		   	
	end if
end if
    
End Sub
Dernière modification par Oukcha le 28 avr. 2025 11:39, modifié 1 fois.
Raison : Balises [code] et [/code] = lecture et sélection simplifiées de votre macro
AOO4114m1(Build:9811) - Rev. a0d24fb625
2023-02-08 19:47

Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Signification de oEvt.supportsService

Message par Dude »

Salut,

Comme l'indique OOotremer971, il faut préciser
OOotremer971 a écrit : 27 avr. 2025 18:52 le contexte d'utilisation
En fournissant un document et en indiquant ce que tu cherches à faire.
Otermale a écrit : 28 avr. 2025 07:57 Ce qui m'a fait poser cette question, c'est ce petit bout de programme ci-dessous
Il convient aussi de citer l'endroit où tu as trouvé ce petit bout de programme.
Au vu du nom de la routine, elle est certainement branchée sur un événement de feuille :

Image
Otermale
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 31 mars 2023 07:58

Re: [Calc] Signification de oEvt.supportsService

Message par Otermale »

Bonjour,

Effectivement, ce petit bout de programme était une réponse dans un blog,https://ask.libreoffice.org/t/equivalen ... fice/64709 où quelqu'un demandait s'il y avait quelque chose de semblable à VBA dans libre office.
voici quelle était sa demande :
Mon script consiste à remplir automatiquement un certain nombre de cellules (target.offset() = ) à partir d’une saisie dans un cellule (if target.value = )
Mon but étant de comprendre comment changer le contenu d'une cellule par le changement de contenu d'une autre.

Merci
AOO4114m1(Build:9811) - Rev. a0d24fb625
2023-02-08 19:47

Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Signification de oEvt.supportsService

Message par Dude »

Otermale a écrit : 02 mai 2025 14:14 Mon but étant de comprendre comment changer le contenu d'une cellule par le changement de contenu d'une autre.
Bis repetitae
Dude a écrit : 02 mai 2025 13:54 En fournissant un document et en indiquant ce que tu cherches à faire.
Image
Comment joindre un fichier au format ODS
Pense également à dépersonnaliser le fichier joint.
Otermale
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 31 mars 2023 07:58

Re: [Calc] Signification de oEvt.supportsService

Message par Otermale »

Bonjour,

Pour le moment, je n'ai aucun document à fournir, je collecte ces informations pour ma compréhension, pour pouvoir les utiliser en sachant plus ou moins ce que je fais.

Merci :)
AOO4114m1(Build:9811) - Rev. a0d24fb625
2023-02-08 19:47

Windows 10