Vos meilleures macros et portions de code sont publiées dans cette section. Aucun support sur une question de programmation ici !
Modérateur :Vilains modOOs
Règles du forum Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
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 :
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
'Mes remerciements au forum officiel OOo : http://user.services.openoffice.org/fr/forum/index.php
'Mes 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) :
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)))
( 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 ...
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.
OOo-3.2.0 sous windows XP
OOo-3... sous Linux Ubuntu 10.10
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.