Page 1 sur 1

[Calc] Fonction d'extraction du nom de feuille

MessagePublié: 10 Sep 2008 08:25
par Jeff
Bonjour,

Ce code va permettre d'extraire le nom d'une feuille en fonction de sa position dans le classeur, en utilisant une formule personnalisée baptisée NOMFEUILLE.

Par exemple, une fois le code installé, =NOMFEUILLE(FEUILLES()) renverra le nom de la dernière feuille :

Version 3 du 17/10/2008 :

Code : Tout sélectionner   AgrandirRéduire
REM  *****  BASIC  *****
' Listener
' Un grand merci à Pierre-Yves Samyn du forum officiel OOo
' pour la partie Listener de cette fonction.
Option Explicit

Global PysListener as object

sub PysListenerAdd

PysListener = createUnoListener("Pys_", "com.sun.star.util.XModifyListener")
ThisComponent.AddModifyListener(PysListener)

end sub

sub PysListenerRemove
   ThisComponent.RemoveModifyListener(PysListener)
end sub

sub Pys_disposing(PysListener)
end sub

Sub Pys_Modified(PysListener)
   thiscomponent.calculateAll
End Sub

'Fonction NomFeuille Version3
'Auteurs : Jeff & Larrassac
'Nos remerciements au forum officiel OOo : http://user.services.openoffice.org/fr/forum/index.php
'Nos remerciements au Club des développeurs français : http://www.developpez.net/forums/index.php

Function NomFeuille(Optional position as integer)
   Dim oDoc As Object, oSheets As Object, Feuille As Object, Cellule as Object
   Dim NmbFeuilles As Integer 'Variable qui va stocker le nombre de feuilles
   
    On error goto Erreurs 'Si erreur va à Erreurs
   oDoc = ThisComponent
   oSheets = oDoc.Sheets
   NmbFeuilles = oDoc.Sheets.Count 'stockage nbre de feuille du classeur

         NomFeuille = oDoc.Sheets(position-1).Name'la première feuille est la feuille 0, d'où le -1
         

    Erreurs: 'Gestion des erreurs

         if position < 1 then goto nul'si le critère position est inférieur à 1 va à Nul
                 
         if IsMissing(position) then goto nul'si le critère position est oublié alors va à Nul
          
           if position > NmbFeuilles then goto nul 'si le critère position est supérieur à NmbFeuilles alors va à Nul
          
         goto fin
       
         nul:'si le critère position est inférieur à 1
         
         NomFeuille = ""'n'affiche rien

         Goto fin
               
    Fin:
       
    End Function


Un petit mode d'emploi (mis à jour le 10/12/2008) :
Tuto_NomFeuille.pdf
(297.31 Kio) Téléchargé 2594 fois


Merci à jboulch pour son retour :super:

Re: [Calc] Fonction d'extraction du nom de feuille

MessagePublié: 05 Déc 2008 16:03
par tascon
Bonjour,

je voulais juste apporter une petite contribution

j'ai utilisé cette macro ( nickel au passage !!! )
en lui mettant une condition sur une err de façon à ce qu'elle se réactualise automatiquement ( sans lancer la macro "Listener", désolé -ya de macro mieux ça tourne ...)
Ligne______________colonne A____________________________________ colonne B
1_________=INDIRECT(CONCATENER(B1;".A1"))_________=SI(ESTERR(A1);NOMFEUILLE(LIGNE(A1)))
2_________=INDIRECT(CONCATENER(B2;".A1"))_________=SI(ESTERR(A2);NOMFEUILLE(LIGNE(A2)))
3_________=INDIRECT(CONCATENER(B3;".A1"))_________=SI(ESTERR(A3);NOMFEUILLE(LIGNE(A3)))
4_________=INDIRECT(CONCATENER(B4;".A1"))_________=SI(ESTERR(A4);NOMFEUILLE(LIGNE(A4)))


résultat

__________________Err :522____________________________________Feuille1
__________________Err :522____________________________________Feuille2
__________________Err :522____________________________________Feuille3
__________________Err :502
__________________Err :502

( info : Err :522 --> err cyclique et Err :502 --> ref non trouvée )

ça oblige à prévoir une colonne "technique" mais l'actulisation est immédiate ( recalcul auto ) en cas de modif des onglets ( ajout, sup , renome ... )


voilà , sinon, c'est dommage que cette fonction n'est pas été directement intégrée dans la version de base ...

Re: [Calc] Fonction d'extraction du nom de feuille

MessagePublié: 12 Jan 2011 11:49
par Goffdely
Je voulais dire un grand merci pour cette fonction qui simplifie grandement les formules que j'avais construites pour automatiser des calculs hebdomadaires et qui, en outre, permet une tolérance sur les fautes de frappe dans les noms des nouvelles feuilles.
Bravo.

Re: [Calc] Fonction d'extraction du nom de feuille

MessagePublié: 31 Juil 2012 13:53
par TomBoy5
Bonjour,

Sinon, il y a plus simple... ou plus compliqué selon le point de vue... Il suffit de s'appuyer sur la fonction CELLULE("FILENAME";xx)
Et la formule :
Code : Tout sélectionner   AgrandirRéduire
=STXT(CELLULE("FILENAME";A1);CHERCHE("$";CELLULE("FILENAME";A1))+1;NBCAR(CELLULE("FILENAME";A1)))

dans une cellule retourne le nom de la feuille référencée par A1...

Mais l'idée de la macro était pas mal non plus. A vous de choisir la solution la plus adaptée à votre besoin.

Je n'ai pas trop de mérite, ma formule est juste une adaptation pour Calc de ce que j'avais trouvé pour Excel...
cf h**p://www.excel-downloads.com/forum/69346-fonction-nom-de-la-feuille-courante-active.html

Cordialement,

Tom

Re: [Calc] Fonction d'extraction du nom de feuille

MessagePublié: 31 Juil 2012 21:17
par Jeff
Bonjour et bienvenue,

TomBoy5 a écrit: Il suffit de s'appuyer sur la fonction CELLULE("FILENAME";xx)

Heuu non, la fonction que tu cites récupère le nom de la feuille courante, il n'est pas possible avec cette fonction de récupérer le nom d'une autre feuille depuis sa position dans le classeur.

A + :)