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.