Libre Office Calc : nom du fichier et arborescence

Après avoir fait ma synthèse pour Excel, il fallait bien que je fasse de même pour Libre Office Calc !

Donc, voici quelques formules glanées ici ou là, permettant d'insérer dans une cellule des informations sur le fichier et son emplacement en utilisant les fonctions et sans macros.

Notez que je suis sous Windows®, les formules demanderont à être partiellement adaptées sous Linux.

Par ce qu'il faudra peut être adapter ces formules à votre usage et que ça me parait important, je me permet aussi de les expliquer... mais c'est pas toujours facile.

Les formules qui vont bien

Chemin complet du fichier

C'est une fonction directement intégrée dans Calc, il suffit de la connaitre.

=CELLULE("nomfichier")

Retourne : 'file:///D:/Users/Eric/Documents/Démonstration/Calc/Arborescence et nom de fichiers sous Calc.ods'#$Onglet 1

Nom du fichier

Il s'agit de sélectionner une partie du texte précédent ; à partir du moment où le dernier caractère « / » est trouvé ; durant le nombre de caractères défini par la position du caractère « # » moins 6 caractères qui correspondent à « .ods'# ».

=STXT(CELLULE("filename");TROUVE("§";SUBSTITUE(CELLULE("filename");"/";"§";NBCAR(CELLULE("filename"))-NBCAR(SUBSTITUE(CELLULE("filename");"/";""))))+1;TROUVE("#";CELLULE("filename"))-TROUVE("§";SUBSTITUE(CELLULE("filename");"/";"§";NBCAR(CELLULE("filename"))-NBCAR(SUBSTITUE(CELLULE("filename");"/";""))))-6)

Retourne : Arborescence et nom de fichiers sous Calc

Arborescence complète

Cette fois on sélectionne une partie du texte de l'arborescence complète ; dès le dixième caractère pour supprimer le « 'file:/// »; durant le nombre de caractères définis par la position du dernier caractère « / » moins 10 caractères correspondant au « 'file:/// » du début.

=STXT(CELLULE("nomfichier");10;TROUVE("§";SUBSTITUE(CELLULE("nomfichier");"/";"§";NBCAR(CELLULE("nomfichier"))-NBCAR(SUBSTITUE(CELLULE("nomfichier");"/";""))))-10)

Retourne : D:/Users/Eric/Documents/Démonstration/Calc

Dossier parent

Le résultat de l’arborescence complète étant dans B3, on cherche à récupérer les n caractères situés à droite de cette chaine de texte.

Pour trouver le nombre de caractères à conserver, la feinte consiste à changer le dernier « / » de la chaine par le caractère « § », puis de faire le calcul nombre de caractère le la chaine moins la position du caractère « § ».

=DROITE(B3;NBCAR(B3)-CHERCHE("§";SUBSTITUE(B3;"/";"§";NBCAR(B3)-NBCAR(SUBSTITUE(B3;"/";"")))))

Retourne : Calc

On peut ensuite facilement retrouver les dossiers précédent en enquillant ce type de requêtes.

Nom de l'onglet

Le nom de l'onglet se trouve en récupérant les n caractères situés à droite du chemin complet du fichier.

Pour le nombre de caractères à conserver, on calcul le nombre de caractères de la chaine moins la position du caractère « ] ».

=DROITE(CELLULE("nomfichier");NBCAR(CELLULE("nomfichier"))-TROUVE("#$";CELLULE("nomfichier"))-1)

Retourne : Onglet 1

Si vous modifiez le nom de la feuille, cette valeur ne se met pas à jour automatiquement avant la prochaine ouverture du fichier, ce qui n'est pas l'idéal.

Pour contourner ce genre de problème, j'additionne MAINTENANT()*0 dans ma formule. Puisque MAINTENANT() évolue sans arrêt, le calcul est fait à chaque validation.

=DROITE(CELLULE("nomfichier");NBCAR(CELLULE("nomfichier"))-TROUVE("#$";CELLULE("nomfichier"))-1+MAINTENANT()*0)

Fichier source

Pour terminer, voici le fichier que j'ai utilisé pour la démonstration : Arborescence et nom de fichiers sous Calc.ods

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.