[Résolu][Calc]Aller à 1 cellule spécifique en fin de script

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 !

[Résolu][Calc]Aller à 1 cellule spécifique en fin de script

Messagepar fneck » 24 Juin 2019 10:06

Bonjour,
J'aimerais faire en sorte que cette macro ci-dessous s'achève en se plaçant en cellule A3 de la Feuille "Données".
Code : Tout sélectionner   AgrandirRéduire
Global Mondoc As Object
Global LesFeuilles As Object

Global Fimport as object
Global Fdonnees as object
Global FIntuiz as object
Global Fmajo as object
Global Fsynthese as object
Global Fexercice as object

Global kligneFin as long

Sub affecter

'macro d'affectation des variables de portée générale

   Mondoc = Thiscomponent
   Lesfeuilles = Mondoc.sheets
      
   Fimport = Lesfeuilles.getByName("ImportCSV")   
   Fdonnees = Lesfeuilles.getByName("Données")
   FIntuiz = Lesfeuilles.getByName("infolégale")
   kligneFin = DerniereLigne(Fdonnees)   

'on affiche la feuille Données
   Fdonnees.isvisible = true
   Mondoc.CurrentController.ActiveSheet = Fdonnees
   MonDoc.CurrentController.Zoomvalue = 85

End Sub

[b]sub BoutonDonnees
       
   Mondoc.CurrentController.ActiveSheet.isvisible = true
   Mondoc.CurrentController.ActiveSheet = FDonnees
   MonDoc.CurrentController.Zoomvalue = 85   

End Sub
[/b]

Le "Bouton Données" correspond au retour au menu principal situé sur la feuille "Données" de mon classeur. Ce bouton se trouve sur plusieurs feuilles.
J'ai trouvé ce code mais je ne parviens pas à l'intégrer au mien.
Code : Tout sélectionner   AgrandirRéduire
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")
    ' Sélection d'une cellule pour que cela fasse plus propre
   args1(1).Value = "$A$3:$A$3"
   dispatcher.executeDispatch(document, ".uno:GoToCell", "", 1, args1())

Merci de votre aide
Dernière édition par fneck le 24 Juin 2019 16:07, édité 3 fois.
Obligation de version libreoffice 5.2.6.2
windows 10
fneck
Membre lOOyal
Membre lOOyal
 
Message(s) : 39
Inscrit le : 07 Jan 2014 11:38

Re: [Calc]Aller dans 1 cellule spécifique en fin de macro

Messagepar Dude » 24 Juin 2019 11:05

Arrête l'enregistreur de macro.
Image
et qui fait l'objet d'un suprême de code : https://forum.openoffice.org/fr/forum/viewtopic.php?f=15&t=11075
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20860
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Calc]Aller dans 1 cellule spécifique en fin de macro

Messagepar fneck » 24 Juin 2019 13:43

Merci Dude.

Si je pose la question c'est que je ne sais pas comment transposer tel ou tel code. Je cherche les infos pourtant avant de demander. la preuve en est, les codes que je trouve proviennent bien de mes recherches sur le forum.
En tous cas, après plusieurs tentatives, ton code issu des suprêmes fonctionne comme ça:
Code : Tout sélectionner   AgrandirRéduire
Global Mondoc As Object
Global LesFeuilles As Object

Global Fimport as object
Global Fdonnees as object
Global FIntuiz as object
Global Fmajo as object
Global Fsynthese as object
Global Fexercice as object

Global kligneFin as long

Dim monDocument As Object, monControleur As Object
Dim maCellule As object
Dim maFeuille As object

Sub affecter

'macro d'affectation des variables de portée générale

   Mondoc = Thiscomponent
   Lesfeuilles = Mondoc.sheets
   
   Fimport = Lesfeuilles.getByName("ImportCSV")   
   Fdonnees = Lesfeuilles.getByName("Données")
   FIntuiz = Lesfeuilles.getByName("infolégale")
   kligneFin = DerniereLigne(Fdonnees)   

'on affiche la feuille Données
   Fdonnees.isvisible = true
   Mondoc.CurrentController.ActiveSheet = Fdonnees
   MonDoc.CurrentController.Zoomvalue = 85

End Sub

sub BoutonDonnees
       
   Mondoc.CurrentController.ActiveSheet.isvisible = true
   Mondoc.CurrentController.ActiveSheet = FDonnees
   MonDoc.CurrentController.Zoomvalue = 85
    monDocument = ThisComponent
    monControleur = monDocument.CurrentController
    monControleur.activeSheet = monDocument.Sheets(7)
    maFeuille = monControleur.ActiveSheet
    maCellule = maFeuille.getCellRangeByName("A3")
    monControleur.select(maCellule)
   


End sub
.
Merci de ton aide
Obligation de version libreoffice 5.2.6.2
windows 10
fneck
Membre lOOyal
Membre lOOyal
 
Message(s) : 39
Inscrit le : 07 Jan 2014 11:38


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)