Bonjour Philippe,
Le 09/11/2018 à 18:32, Philippe BLANCHARD a écrit :
Connaissez vous le moyen de ne pas mettre le nom de la feuille en dur dans
cette formule :
oSheet = ThisComponent.Sheets.getByName("1")
En effet, dans mon projet j'ai des onglets numérotés de 1 à 26 et j'aimerai
qu'à partir du 2e onglet, la macro puisse copier des infos de l'onglet
précédent.
les feuilles sont indexées à partir de zéro dans la propriété .Sheets du
document.
Donc Sheets(0) est la première feuille (à partir de la gauche), etc. Le
nombre de feuilles est dans la propriété .Sheets.Count du document.
Par conséquent si i est l'index de la feuille courante
(ThisComponent.Sheets(i)), tu accèdes à la précédente par i-1.
Pour connaître l'index de la feuille courante, interroge sa propriété
RangeAddress.Sheet :
Dim oFeuille As Object
Dim index As Integer
oFeuille = ThisComponent.CurrentController.ActiveSheet
index = oFeuille.RangeAddress.Sheet
Pour accéder à la feuille suivante :
oFeuilleSuivante = ThisComponent.Sheets(index + 1)
Attention aux points suivants :
-- vérifier que tu peux accéder à index + 1 ou à index -1 (que ces
feuilles existent bien : pas inférieur à 0 et pas supérieur à Count - 1).
-- si tu suis ce chemin, il faut t'assurer que l'utilisateur *ne peut
pas* modifier l'ordre des feuilles ! Donc il faut verrouiller le
classeur (Outils > Protéger le classeur).
Sans ça, cata en vue :)
Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la liste
reçoive une copie de votre réponse.
Bien cordialement,
--
Jean-Francois Nifenecker, Bordeaux
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.