Bonjour,
Je cherche à activer une feuille à partir de son nom, de telle sorte que cette feuille
puisse être identifiée par la fonction "ThisComponent.currentcontroller.activeSheet".
Cette fonction m'est utile car elle me permet de créer un bouton dans une feuille
afin d'éxecuter une macro qui stocke des valeurs dans la feuille où se trouve le bouton.
Bien sûr, je dispose de plusieurs feuilles avec des boutons/macros différents, et j'aimerais
maintenant éxecuter automatiquement ces macros les unes à la suite des autres.
Ce qui suit ne semble pas fonctionner, je doute qu'il active vraiment les feuilles :
' Routine pour exécuter les macros les unes après les autres
Sub Run_All_Tests()
Dim TheSheets As Object
Dim MyCurrentSheet As Object
TheSheets = ThisComponent.Sheets()
MyCurrentSheet = TheSheets.getByName("Sheet_name_1")
Sub_routine_1()
MyCurrentSheet = TheSheets.getByName("Sheet_name_2")
Sub_routine_2()
[...]
End Sub
' Macro exécutée dans la feuille 1 "Sheet_name_1"
Sub Sub_routine_1()
Dim oDocument As Object
Dim MySheet As Object
oDocument = ThisComponent
MySheet = oDocument.currentController.activeSheet
[...]
End Sub
' Macro exécutée dans la feuille 2 "Sheet_name_2"
Sub Sub_routine_2()
Dim oDocument As Object
Dim MySheet As Object
oDocument = ThisComponent
MySheet = oDocument.currentController.activeSheet
[...]
End Sub
Merci beaucoup.
Cordialement,
Guillaume
Guillaume Audirac
----- Message from Laurent Godard <[EMAIL PROTECTED]> on Tue, 26 Apr 2005 18:03:37 +0200 -----
To:
|
prog@fr.openoffice.org
|
Subject:
|
Re: [prog] Selection de la feuille
Calc par defaut |
Bonjour Guillaume,
> Je sais sélectionner une feuille par son petit nom avec :
> MaFeuille = ThisComponent.Sheets().getByName("Oeuvres")
> Malheureusement, je n'arrive pas à sélectionner la feuille courante,
> sans l'identifier par son nom. Connaîtriez-vous un moyen de faire ça ?
> Ou bien encore, de récupérer le nom de la feuille courante ?
FeuilleActive = thisComponent.currentcontroller.activeSheet
FeuilleActive.name pour son nom
> Ca me serait bien utile puisque j'utilise un bouton pour lancer une
> macro qui remplit des cases de la feuille où se trouve le bouton. Et
> j'utilise la même macro quelque-soit le nom de la feuille.
>
pour celà il y a un astuce
dans la sub appelée, ajoute un argument
sub MonClique(evt)
....
end sub
evt est un objet evenement traduisant l'appel
evt.source te donne l'objet appelant
> Merci d'avance pour votre aide.
N'hesites pas si tu as des questions
Cordialement
Laurent
--
Laurent Godard <[EMAIL PROTECTED]> - Ingénierie OpenOffice.org
Indesko >> http://www.indesko.com
Nuxeo CPS >> http://www.nuxeo.com - http://www.cps-project.org
Livre "Programmation OpenOffice.org", Eyrolles 2004