[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 !
fneck
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 07 janv. 2014 10:38

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

Message par fneck »

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

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

 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 modification par fneck le 24 juin 2019 15:07, modifié 3 fois.
Obligation de version libreoffice 6.2.7.1
windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

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

Message par Dude »

Arrête l'enregistreur de macro.
Image
et qui fait l'objet d'un suprême de code : https://forum.openoffice.org/fr/forum/v ... 15&t=11075
fneck
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 07 janv. 2014 10:38

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

Message par fneck »

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

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 6.2.7.1
windows 10 Pro