Formulaire de demande d'aide

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/assistance/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

De la part de : -
- daniel.crochart@bbox.fr

Texte de la question : -
- pourrais connaitre la macro pour récupérer le N° de la cellule active
merci

Bonjour

Message du 12/04/14 07:18
pourrais connaitre la macro pour récupérer le N° de la cellule active

La question est très imprécise notamment quant au contexte...

Ci-dessous deux possibilités répondant aux cas courants
Attention, l'exemple donné ci-dessous ne fonctionne que
si la sélection courante est une cellule...

La première syntaxe donne le "nom" de la cellule incluant le
nom de la feuille.

La deuxième donne l'information sous forme numérique : une cellule
n'a pas de "numéro" comme demandé mais une "adresse".
Une adresse de cellule est un objet "complexe" se décomposant
en numéro de ligne, de colonne et de feuille.

À noter : les "collections" étant numérotées à partir de zéro,
ces 3 propriétés (ligne, colonne, feuille) sont égales à zéro
pour la cellule A1 de la première feuille.

Sub PysCellActive1

msgbox thiscomponent.currentselection.AbsoluteName

with thiscomponent.currentselection.CellAddress
msgbox "Colonne : " & .Column & chr(10) &_
"Ligne : " & .Row & chr(10) &_
"Feuille : " & .Sheet
end with

End Sub

Si tu réponds, merci de penser à utiliser la fonction "répondre à tous"
du logiciel de courrier électronique ou webmail de façon que la liste
reçoive la réponse.

Cordialement
Pierre-Yves

Suite...

Message du 12/04/14 12:00
j'aimerais pouvoir recuperer ce N° de ligne pour l'utiliser dans un
calcul comme variable exemple pour la cellule active  a9 prendre le
neuf la prendre comme variable x pour l utiliser dans un calcul
exemple b=2+x ce qui nous donne ici b=11

De nouveau le *contexte* manque : veux-tu faire cela dans une fonction,
dans une procédure, dans une formule ?

Pour info. nul besoin de programme pour faire cela. Tu peux utiliser
la fonction LIGNE dans le tableau, par exemple :
=A9+LIGNE(A9)

donnera 11 si A9 contient 2

Si tu réponds, merci de penser à utiliser la fonction "répondre à tous"
du logiciel de courrier électronique ou webmail de façon que la liste
reçoive la réponse.

Cordialement
Pierre-Yves

merci c'est super; mais j'aimerais pouvoir recuperer ce N° de ligne pour l
utiliser dans un calcul comme variable
exemple pour la cellule active a9 prendre le neuf la prendre comme variable
x pour l utiliser dans un calcul exemple b=2+x ce qui nous donne ici b=11
et si c'est la cellule c12 qui est séléctionnée alors b=14

-------Message original-------

Suite...

Message du 12/04/14 12:46
j'ai pas du bien me faire comprendre je ne veux pas utiliser le
contenu de la cellule

J'ai bien compris et aucune de mes réponses ne te parle de ça

je veux transformer le numéro de la ligne de la cellule active
en une variable dont je me servirais dans un calcul dans une procedure

Dans ce cas je t'ai déjà répondu (première réponse)

Cordialement
Pierre-Yves

j'ai pas du bien me faire comprendre je ne veux pas utiliser le contenu de
la cellule je veux transformer le numéro de la ligne de la cellule active en
une variable dont je me servirais dans un calcul
dans une procedure merci

-------Message original-------

Désolé mais tu as affaire à un novice en programmation ta premiere réponse
me donne bien le nom complet de la cellule active dans une boite de message
dans un premier temps
et dans un deuxieme temps le numero de la ligne puis le n° de la colonne et
enfin le nom de la feuille toujours dans une boite de message c'est parfait
mais comment fais je si je veux que la variable "a" soit égale à ce n° de
ligne
comme par exemple (ce n'est pas celà)
a= ThisComponent.getCurrentSelection.row

désolé pour mon ignorance

-------Message original-------

Bonjour,

toute occasion est bonne pour apprendre et expérimenter.

À partir de l'exemple de Pierre-Yves, j'ai tenté 3 approches, utilisables je crois dans divers contextes

1- sans macro, ce qui n'est pas la demande initiale, j'en conviens
* définir un nom par varX=Ligne()
Pour l'utiliser, on insère la formule en C3, par exemple
=varX
ou en association d'une valeur
=12345+varX

2- via une procédure
Sub ajoutX
Dim varX as Long
varX=thiscomponent.currentselection.CellAddress.Row+1
End Sub

la variable varX est récupérable pour d'autres calculs

3- via une fonction
Function funcX
Dim varX as Long
varX=thiscomponent.currentselection.CellAddress.Row+1
funcX=varX
End Function

Utilisation dans une cellule =12345+FUNCX()

Me trompé-je et où ?

Lucien

Suite...

Message du 12/04/14 15:53
Désolé mais tu as affaire à un novice en programmation

Ce n'est pas un problème... avant de savoir... on ne sait pas :slight_smile:

En revanche si tu ne l'indiques pas le risque est que les
réponses ne soient pas assez "développées".

comment fais je si je veux que la variable "a" soit égale à ce n° de
ligne comme par exemple (ce n'est pas celà)
a= ThisComponent.getCurrentSelection.row

Tu n'es pas loin... J'indiquais dans ma première réponse que
la sélection courante (on suppose toujours que c'est une cellule)
ne donnait pas "directement" le numéro de ligne mais son
"adresse". Une adresse de cellule est un objet "complexe"
se décomposant en numéro de ligne, de colonne et de feuille.

Il faut donc écrire :

a= ThisComponent.getCurrentSelection.CellAddress.row

Lucien a donné d'autres exemples

Cordialement
Pierre-Yves

Je te remercie c'est tout à fait ce que je voulais bon week end à vous deux

-------Message original-------

Oui merci à toi

-------Message original-------