correction pour ne pas avoir d'erreur au chargement du document :
Function lafeuille(numero)
On Error Resume Next
if numero <= thiscomponent.sheets.getcount() then
lafeuille = thiscomponent.sheets(numero).Name
else
lafeuille = ""
endif
End Function
(rajouter le On Error resume next)
ok c'est à l'arrache ;)
quand le document est chargé, Ctrl-Shift-F9 permet de recalculer.
J'ai fait au plus rapide ;)
Yves
Le jeu. 9 déc. 2021 à 22:37, yves dutrieux <ydutrieux@gmail.com> a écrit :
Bonsoir,
oui, sans macros, je vois pas comment car il n'existe pas de
indirect avec un déplacement relatif par rapport à une feuille
(serait peut-être intéressant d'avoir cela en + des déplacements
relatifs de lignes/colonnes ;) ).
sinon voici un exemple de fonction "lafeuille" qui te retourne le
nom de feuille associé à sa position (mais via macro très simple).
https://cjoint.com/c/KLjvKGoaaC8
a noter que si l'on change un nom de feuille, il est nécessaire de
faire un Ctrl-Shift-F9 car les functions ne se recalcule pas
sinon....
Yves
Le jeu. 9 déc. 2021 à 19:43, Ocleyr2lalune
<ocleyr2lalune@zaclys.net> a écrit :
Salut Hervé
le truc c'est que onglet est un peu impropre, tu veux les noms
de toutes les feuilles d'un classeur dans une des feuilles du
classeur.
De base, oui, comme le dit Jean Michel tu pourrais utiliser
une macro, d'autant qu'il t'indique qu'elle serait simple, et
quand j'ai vu l'objet de ton message, je l'ai associé à une
réponse via macro...
Je suis la première à dire que l'usage d'une macro est à
éviter quand on peut faire autrement. Particulièrement quand
tu ne fais pas des choses que pour toi, notamment car les
compétences peuvent être plus difficiles à acquérir pour la
personne qui reprend le fichier. Mais mon intuition est que
dans ton cas, il existe déjà des choses trés simples pour y
répondre via une macro, et que la mise en place d'une formule
peut être plus complexe....
Sauf que tu as déjà la formule qui répond à ta question.
Donc, je passe mon interface en anglais, je teste ta formule
je crée une nouvelle feuille, et dans ta formule, je remplace
A1 par la référence d'une cellule de la nouvelle feuille.
J'obtiens le nom de l'autre feuille...
Et c'est tout.
Donc sans macro, tu dois manuellement, saisir une formule,
pour chacune des feuilles, rajouter une nouvelle cellule avec
cette
formule si tu crées une nouvelle feuille.
Ensuite, si tu renommes une feuille, tu auras bien son nom qui
sera automatiquement mis à jour par ta formule.
Si tu veux que la liste se mette à jour d'elle même en
ajoutant ou supprimant une feuille, sans compléter toi-même ta
liste, tu ne pourras pas faire l'économie d'une macro, elle
sert à ça.
D'ailleurs, je pense (mais Jean Michel s'y connait mieux en
macro que moi je crois) que tu ne pourras pas faire l'économie
d'un déclencheur (quand est-ce que la macro s'exécute pour
vérifier qu'il y a un changement ?)
Après si c'est juste pour avoir une vision synthétique de
toutes tes feuilles (sans faire référence aux noms), sers toi
du navigateur...
Au passage, pense à passer au mlnimum en 7.1.8 (cf alerte de
sécurité de Jean Baptiste Faure de lundi 6)
Bon courage !
Claire
Herve ROUSSEL wrote:
Bonjour,
Dans un fichier Calc, j'ai plusieurs feuilles de calcul et
j'ai renommé chaque feuille de calcul ce qui fait que le nom
interne (Sheet1, Sheet2, ... ou Feuille1, Feuille2, ...) ne
correspond plus au nom qui apparaît dans chaque onglet des
feuilles de calcul.
Dans une des feuilles de calcul de ce classeur, j'aimerais, en
utilisant des formules et pas des macros, récupérer le nom de
chaque onglet de toutes les feuilles de calcul du classeur.
Je sais comment récupérer le nombre de feuille (fonction
sheets()).
Sur une feuille de calcul, je sais récupérer le nom interne de
la feuille (fonction sheet()).
Sur une feuille de calcul, je sais récupérer le nom de la
feuille (le nom inscrit dans l'onglet)
(=MID(CELL("filename";A1);FIND("$";CELL("filename";A1))+1;256)&T(RAND())).
Mais je n'arrive pas à obtenir sur une même feuille de calcul
le nom de tous les onglets du classeur.
Le but étant aussi que cela se mette à jour quand je supprime
ou rajoute une feuille de calcul ainsi que quand je modifie le
nom d'une des feuilles.
Une autre façon de faire serait de récupérer la correspondance
entre le nom interne et le nom inscrit dans l'onglet de chaque
feuille de calcul... mais je n'ai rien trouvé la-dessus.
Si c'est faisable, est-ce que l'un de vous sait comment faire
et pourrait m'expliquer ?
Pour information, voici la version de LibreOffice que
j'utilise (que je vais passer en 7.1.8 rapidement).
Version: 7.1.7.2 (x64) / LibreOffice Community
Build ID: c6a4e3954236145e2acb0b65f68614365aeee33f
CPU threads: 8; OS: Windows 10.0 Build 19044; UI render:
Skia/Raster; VCL: win
Locale: en-US (fr_FR); UI: en-US
Calc: threaded
Merci d'avance.
Portez-vous bien.
Cordialement.
Hervé
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org
<mailto:users%2Bunsubscribe@fr.libreoffice.org>
<mailto:users+unsubscribe@fr.libreoffice.org
<mailto:users%2Bunsubscribe@fr.libreoffice.org>> pour vous
désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
<https://listarchives.libreoffice.org/fr/users/>
Privacy Policy: https://www.documentfoundation.org/privacy
<https://www.documentfoundation.org/privacy>
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org
<mailto:users%2Bunsubscribe@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
--
web site : http://www.molenbaix.com
--
web site : http://www.molenbaix.com
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.