[Résolu][Calc]Cellule en argument de fonction

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 !
saibe
Fraîchement OOthentifié
Messages : 4
Inscription : 28 mars 2022 14:04

[Résolu][Calc]Cellule en argument de fonction

Message par saibe »

Bonjour à tous,
étant débutant j'ai une question bête : je cherche à passer une cellule en argument à ma function

Code : Tout sélectionner

' extrait l'URL d'un hypertext
function getUrl(mC as Variant) as String

Dim oSheet As Object
Dim oCell As Object
Dim oTextfields As Object

oSheet = ThisComponent.CurrentController.ActiveSheet

oCell = oSheet.getCellRangeByName(mC) '<- c'est là que ça coince, je ne comprends pas

oTextfields = oCell.TextFields

getUrl = ConvertFromURL(oTextFields.getByIndex( 0 ).Url)

End function

si je fais =getUrl("a1") ça fonctionne
mais si je fais =getUrl(a1) -> erreur ; mais c ce que je recherche ;)

merci
Dernière modification par saibe le 31 mars 2022 02:47, modifié 5 fois.
LibreOffice 7.3.1.3 / windows 11
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3948
Inscription : 06 oct. 2008 08:03

Re: débutant, cellule en argument de function

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.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
saibe
Fraîchement OOthentifié
Messages : 4
Inscription : 28 mars 2022 14:04

Re: [Calc][macro]Cellule en argument de fonction

Message par saibe »

pardon, je débute ;)
merci pour votre réponse
LibreOffice 7.3.1.3 / windows 11
Avatar de l’utilisateur
Dolev
InconditiOOnnel
InconditiOOnnel
Messages : 945
Inscription : 19 août 2018 05:20

Re: [Calc]Cellule en argument de fonction

Message par Dolev »

Bonsoir,

Il est normal que cela ne fonctionne pas puisque le compilateur voit a1 comme une variable.
Si tu veux faire ça, il faut coder :

Code : Tout sélectionner

a1 = "A1"
Open Office 4.1.15 sous Windows 11
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: [Calc]Cellule en argument de fonction

Message par zeguedon »

Bonjour,

Si tu passes à ta fonction les références de ta cellule A1, tu ne récupéreras que le contenu de cette cellule, mais en aucun cas l'objet cellule, et donc ses propriétés non plus.
Il faut passer à ta fonction l'adresse de ta cellule via la fonction éponyme :

Code : Tout sélectionner

=MaFonction(ADRESSE(LIGNE(A1);COLONNE(A1);4))
ou directement

Code : Tout sélectionner

=MaFonction("A1")
mais dans ce dernier cas tu perds le réadressage automatique en cas de déplacement de ladite cellule ou d'insertion de lignes et/ou de colonnes.
@+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
saibe
Fraîchement OOthentifié
Messages : 4
Inscription : 28 mars 2022 14:04

Re: [Calc]Cellule en argument de fonction

Message par saibe »

Merci pour vos réponses

Dolev,
je n'ai pas bien compris comment coder

Code : Tout sélectionner

mC = "mC"
zeguedon,
super, ça fonctionne avec

Code : Tout sélectionner

=getUrl(ADRESSE(LIGNE(A1);COLONNE(A1)))
cela dit, y a-t-il une procédure pour récupérer l'object cellule directement ?

Code : Tout sélectionner

=getUrl(A1)
sinon, je mettrai en résolu.

merci encore !!
LibreOffice 7.3.1.3 / windows 11
Avatar de l’utilisateur
Dolev
InconditiOOnnel
InconditiOOnnel
Messages : 945
Inscription : 19 août 2018 05:20

Re: [Calc]Cellule en argument de fonction

Message par Dolev »

Re,

Je ne vois pas où est le problème.
capture.png
Maintenant sans voir le document et comment est appelée la fonction, tu surestimes notre don de voyance. :lol:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.15 sous Windows 11
saibe
Fraîchement OOthentifié
Messages : 4
Inscription : 28 mars 2022 14:04

Re: [Calc]Cellule en argument de fonction

Message par saibe »

Bonjour,
Dolev, en fait je cherchais à récupérer "l'object cellule" pas sa valeur.
merci pour ta réponse
LibreOffice 7.3.1.3 / windows 11
Avatar de l’utilisateur
Dolev
InconditiOOnnel
InconditiOOnnel
Messages : 945
Inscription : 19 août 2018 05:20

Re: [Résolu][Calc]Cellule en argument de fonction

Message par Dolev »

Maintenant sans voir le document et comment est appelée la fonction
:roll:

L'objet cellule se récupère via la propriété CurrentSelection
Open Office 4.1.15 sous Windows 11