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





Répondre à