[Résolu][Calc] Rappel cellule active

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 !
KappaKudo
Fraîchement OOthentifié
Messages : 3
Inscription : 27 mai 2018 21:48

[Résolu][Calc] Rappel cellule active

Message par KappaKudo »

Bonjour,

je suis nul en calc basic mais j'aimerais savoir si c'est possible de pouvoir de pouvoir rappeler un cellule active ?

Je m'explique, je clique ou pas sur une cellule je déclenche ma macro et je voudrais revenir sur la cellule cliquée avant l'exécution de ma macro...

Merci d'avance.
Dernière modification par micmac le 27 mai 2018 22:02, modifié 1 fois.
Apache OpenOffice 4.1.5
Windows 10 Famille
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9256
Inscription : 28 août 2010 08:45

Re: [Calc] Rappel cellule active

Message par micmac »

Bonjour et bienvenue,

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 postées les autres questions ?

Lisez ce fil pour savoir quelle balise utiliser : https://forum.openoffice.org/fr/forum/s ... html#27295

N'oubliez pas que les termes "Macro" ou "OpenOffice" ne doivent pas être employés car il sont implicites. Essayez de synthétiser au mieux ce que vous cherchez à faire.

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é.
votre signature a écrit : Apache OpenOffice 4.1.3
Votre signature est incomplète et indique une version de OpenOffice qui n'est plus maintenue.
Est-ce une erreur, un oubli, un choix, une obligation ?
Dans ce dernier cas, mentionnez-le dans votre signature par "Obligation de version".

Pour connaître la version que vous possédez : https://forum.openoffice.org/fr/forum/v ... 582#p11582

Afin de profiter des dernières améliorations, il est fortement recommandé d'être à jour de la dernière version

Dans votre signature il est nécessaire d'indiquer :
1- La version exacte de AOO ou LibO (AOO 4.1.5, LibO 5.4.7 par exemple) ;
2- La version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 1§.04, MacOS 10.13.4 par exemple).
Accès direct à votre signature pour la corriger.

Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Rappel cellule active

Message par Dude »

Le clic simple n'est pas une bonne idée.
En revanche, tu as l'évènement de feuille "Double clic" que tu peux assigner.

Il te suffit d'agir sur la méthode getCurrentSelection et de mémoriser la structure CellAdress dans une variable.
Mais bon, je ne vois pas l'intérêt de la chose.
Que doit donc faire la macro ?

Comme toujours, fournir un document accompagné de copies écran nous évite le jeu des devinettes.
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 08:05

Re: [Calc] Rappel cellule active

Message par joel275 »

Bonjour,

merci de tenir compte des demandes du modérateur....
Pour ta demande, il te suffit de mettre dans une variable, la cellule active, de laisser travailler ta macro et enfin de resélectionner la cellule. ce qui donne:

Code : Tout sélectionner

	doc = ThisComponent
	sel = doc.CurrentSelection
	' ici tu mets ta macro
	doc.CurrentController.select(sel)
mais fournir plus de détails, en particulier ta macro, éviterait de répondre à l'aveugle...

A plus.
A jour de LibreOffice et de Ubuntu
KappaKudo
Fraîchement OOthentifié
Messages : 3
Inscription : 27 mai 2018 21:48

Re: [Calc] Rappel cellule active

Message par KappaKudo »

Voici le Code :

Code : Tout sélectionner

sub Huitieme

call Pseudo
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "Tournoi"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(8) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ByRows"
args2(0).Value = true
args2(1).Name = "HasHeader"
args2(1).Value = true
args2(2).Name = "CaseSensitive"
args2(2).Value = false
args2(3).Name = "IncludeAttribs"
args2(3).Value = true
args2(4).Name = "UserDefIndex"
args2(4).Value = 0
args2(5).Name = "Col1"
args2(5).Value = 4
args2(6).Name = "Ascending1"
args2(6).Value = true
args2(7).Name = "Col2"
args2(7).Value = 5
args2(8).Name = "Ascending2"
args2(8).Value = false

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$A$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

end sub
Qui est censé appelé une macro Pseudo car le tri sur 4 colonnes en critère de tri ne marche pas mais le problème c'est que la macro me fait remonter le document en A1 alors que plus je fais les macros et plus je vais vers le bas donc j'aimais bien une variable intermédiable qui garderait la cellule active (du moins sa référence) puis une fois les tris finis reviendrait à sa position initiale...

Désolé pour la version, j'ignorais que le site poussait les gens à mettre obligatoirement à jour leur version OpenOffice...
De plus, il n'y a rien dans le logiciel qui indiquait une éventuelle mise à jour...
Apache OpenOffice 4.1.5
Windows 10 Famille
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9256
Inscription : 28 août 2010 08:45

Re: [Calc] Rappel cellule active

Message par micmac »

Bonjour,
[b][color=#404080]KappaKudo[/color][/b] a écrit :il n'y a rien dans le logiciel qui indiquait une éventuelle mise à jour.
Non, ce n'est pas prévu, il n'y a pas de mise à jour automatique sur OpenOffice. Cela se fait manuellement et il faut se tenir au courant.
Comme écrit supra, il est conseillé de se tenir à jour des dernières versions.

Quant à la version de votre système d'exploitation, on attend que vous vouliez compléter votre signature.

Merci
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
KappaKudo
Fraîchement OOthentifié
Messages : 3
Inscription : 27 mai 2018 21:48

Re: [Calc] Rappel cellule active

Message par KappaKudo »

Mise à jour de la signature =)
Apache OpenOffice 4.1.5
Windows 10 Famille
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Rappel cellule active

Message par Dude »

KappaKudo a écrit :mais le problème c'est que la macro me fait remonter le document en A1
La macro fait ce que tu lui demandes. Tu as une instruction uno:GoToCell qui t'envoie en A1.
KappaKudo a écrit :donc j'aimais bien une variable intermédiable qui garderait la cellule active
Et donc ? joel275 te propose un code qui fait ce que tu demandes.
Fais au moins l'effort de l'intégrer.