Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum 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 !
en paramètres et ça marche très bien. Mais ce serait moins lourd à utiliser s'il était possible que la fonction récupère [sous la forme (nombre, nombre)], pas A1, les coordonnées de la cellule, un peu comme "ActiveSheet" retourne le n° de page.
Est-ce que ça existe ?
Merci d'avance, à plus dans l'bus
Dernière modification par micmac le 13 mars 2017 07:25, modifié 2 fois.
Raison :Balisage+verrouillage
Claudie-Def a écrit :j'ai une belle petite fonction qui a besoin des coordonnées de la cellule d'où elle est appelée.
Tu récupères l'évènement et tu te sers de XRay.
Il suffit d'interroger la méthode getCellAdress.
La structure contient les propriétés Colonne (Column), Ligne (Row) et Feuille (Sheet) de la cellule.
Sub OuSuisJe
Dim oConversion, sMsg As String
oConversion = ThisComponent.createInstance("com.sun.star.table.CellAddressConversion")
oConversion.Address = thisComponent.CurrentSelection.getCellAddress
sMsg = oConversion.UserInterfaceRepresentation & chr(10) & chr(10)
With oConversion.Address
sMsg = sMsg & "Feuille : " & .Sheet & chr(10) & "Colonne : " & .Column & chr(10) & "Ligne : " & .Row & chr(10)
END With
MsgBox sMsg
End Sub
Ajout : Edition pour une version plus compacte avec l'utilisation de com.sun.star.table.CellAddressConversion
cOOordialement
--- AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide... XRay + SDK
--- Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Bonjour,
merci pour ce ou-suis-je, (et dans quel état j'erre), il me retourne les cordonniers de la cellule occupée par le curseur, pas celles de la fonction qui l'utilise.
Mais je sens que la solution est proche.
Claudie-Def a écrit :pas celles de la fonction qui l'utilise.
Mais je sens que la solution est proche.
Joindre ton fichier peut aider à accélérer l'obtention de la solution...
cOOordialement
--- AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide... XRay + SDK
--- Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
ou créer une formule nommée par le menu Insertion>Nom>Définir et appeler cette formule dans ta fonction. Mais si c'est pour manipuler l'objet cellule que la fonction appelle utilisé par la fonction je te souhaite bien du courage.
' Retourne l'index d'une colonne de nom donné
'--------------------------------------------
Function IndexColonne(nom As String) As Long
Dim uneCellule As Object
On Error Goto IndexColonneError
uneCellule = ThisComponent.Sheets(0).getCellRangeByName(nom &"1")
IndexColonne = uneCellule.RangeAddress.StartColumn
Exit Function
IndexColonneError:
IndexColonne = -1
End Function
' Retourne l'index d'une ligne de nom donné
'------------------------------------------
Function IndexLigne (nom As String) As Long
Dim uneCellule As Object
On Error Goto IndexLigneError
uneCellule = ThisComponent.Sheets(0).getCellRangeByName("A" & nom)
IndexLigne = uneCellule.RangeAddress.StartRow
Exit Function
IndexLigneError:
IndexLigne = -1
End Function
LibreOffice 6.1.3.2 x64 / AOO 4.1.5 (x86) sous Windows 8.1 (x64)
Java 8.x (x64 et x86), Firefox, Thunderbird,....
“Celui qui aime à apprendre est bien près du savoir.” (Confusius) Comment baliser Résolu
Bonjour,
ces différente formules donnent la cellule active, c.à-d. la position du curseur. Or il me faut les coordonnées de la cellules où se trouve la fonction sans avoir besoin de les mettre en paramètre.
Quelle que soit la cellule dans laquelle tu saisis Pos (ou le passe en paramètre à ta fonction), tu récupères les références de la cellule qui contient Pos
A+
Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.
N'ayant plus de nouvelles, on peut en déduire que le problème est résolu ou ne se reproduit pas.
Merci de baliser par vous-même la prochaine fois.
Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La politesse fait également partie de la philosophie du logiciel libre.
En cas d'erreur, contactez l'équipe de modération pour la réouverture du fil.
Sujet balisé [Résolu] et verrouillé.
Cordialement,
Touche Ctrl de Windows = touche cmd⌘ sur Mac Outils > Options sur Windows = OpenOffice > Préférences sur Mac