Monsieur Excel
Pour tout savoir faire sur Excel !

14 décembre 2006

Nom de classeur, chemin et feuille

Nous venons d’apprendre à utiliser les fonctions orphelines Cellule() et Info(). Voici un exemple où nous les utilisons pour récupérer séparément le nom du classeur, le nom de la feuille, le nom du chemin du classeur et enfin le nom du chemin « actif », c’est-à-dire celui dont on voit la liste des fichiers quand on passe par la commande « Ouvrir » du menu Fichier.


Pour A1 et B6, nous avons mis les formules en commentaire, il est donc superflu de les décrire ici.

Remarque - Notez la présence du second argument dans la formule de la cellule A1 : si nous l’avions omis, A1 ferait référence à la feuille et au classeur de la dernière cellule modifiée, et donc pas nécessairement à cette feuille ni à ce classeur !

Voici donc les formules utilisées dans les autres cellules :

B3 : =stxt(A1;cherche("[";A1)+1;cherche("]";A1)-cherche("[";A1)-1)
B4 : =droite(A1;nbcar(A1)-cherche("]";A1))
B5 : =gauche(A1;cherche("[";A1)-1)

Ces formules sont assez simples car elles font référence à la cellule A1. Si l’on voulait tout calculer à chaque fois en une seule cellule, les formules deviendraient sensiblement plus lourdes :

C3 : =stxt(cellule("filename";$A$1);cherche("[";cellule("filename";$A$1))+1;cherche("]";cellule("filename";$A$1))-cherche("[";cellule("filename";$A$1))-1)

C4 : =droite(cellule("filename";$A$1);nbcar(cellule("filename";$A$1))-cherche("]";cellule("filename";$A$1)))

C5 : =gauche(cellule("filename";$A$1);cherche("[";cellule("filename";$A$1))-1)

Remarque - Il est intéressant de noter que, si l'on voulait récupérer les noms du classeur, de la feuille, ou le chemin, il faudrait normalement passer par des macros en VBA. Ici, nous obtenons le même résultat directement avec de simples (si l'on peut dire) formules...

1 Commentaire(s):

  • PROBLEME :

    B1 = E:\Mes documents\Antoine\LC Consulting\TVA\
    B2 = [Déclaration TVA mensuelle 2010.xls]
    B3 = oct
    B4 = $A$42

    La fonction "indirect" va me chercher les données dans le fichier spécifié,
    =INDIRECT("'" & B1 & B2 & B3 & "'" & "!" & B4 )

    mais cela fonctionne que si le fichier construit est ouvert.
    Peut-on faire la même chose avec un fichier fermé ?

    By Blogger CORREIA, sur 4:19 PM  

Enregistrer un commentaire

<< Accueil