Comment insérer le nom de fichier actuel dans Excel?

14

J'essaie d'afficher le nom de fichier sur lequel je travaille dans la feuille de calcul Excel d'intérêt à l'aide d'une formule. Par exemple, si le fichier s'appelait workbook1.xlsx, je voudrais que la cellule A1 affiche "workbook1.xlsx"

La formule fournie par le site d'aide de Microsoft ne fonctionne pas: http://office.microsoft.com/en-us/excel-help/insert-the-current-excel-file-name-path-or-worksheet-in- a-cell-HA010103010.aspx # BMinsert3

= MID (CELL ("filename"), SEARCH ("[", CELL ("filename")) + 1, SEARCH ("]", CELL ("filename")) - SEARCH ("[", CELL ("filename) "))-1)

timothy.s.lau
la source
En quoi ça ne marche pas? Quelle sortie donne-t-il? Avez-vous enregistré le classeur?

Réponses:

14

Cela fonctionne ici, je viens de tester sur Excel 2007 (XP) et Excel 2013 (Windows 8).

Essayez d' =CELL("filename")abord seul pour aider au dépannage.

  • Assurez-vous que vous avez enregistré votre classeur sur le disque. Il n'affichera pas "Book1" si vous placez la formule dans un nouveau classeur non enregistré.

  • Utilisez-vous des paramètres régionaux non anglais sur votre ordinateur? Certains langages nécessitant un ajustement des noms de fonction et de la syntaxe des formules (en français par exemple, les virgules doivent être remplacées par des points-virgules).

  • Êtes-vous sur votre ordinateur personnel ou sur un ordinateur professionnel? S'il s'agit d'un ordinateur de travail, il peut y avoir des limitations des droits d'utilisateur à l'origine de problèmes.

Quand vous dites "ça ne marche pas", pouvez-vous être plus précis? Accepte-t-il la formule telle qu'elle a été tapée? La cellule est-elle vide, affichant "#VALUE!", Etc.? Que se passe-t-il lors de l'utilisation =CELL("filename")?

mtone
la source
Je pense que j'avais un espace ou quelque chose, ça marche maintenant. Merci!
timothy.s.lau
Ne semble pas fonctionner dans la version bêta d'Excel 2015.
Akku
Assurez-vous que le balisage de la cellule dans laquelle vous vous trouvez est général / standard (donc pas de texte / nombre, etc.)
Lexib0y
1
Cela n'a pas fonctionné pour moi, jusqu'à ce que je change le caractère virgule en point-virgule, selon mes paramètres régionaux.
mavrosxristoforos
9

Notez que =CELL("filename") vous donne le chemin d'accès au dernier classeur / feuille de calcul modifié, donc si vous avez 2 classeurs ouverts, abc et xyz et que votre formule est en abc, si vous avez modifié pour la dernière fois une valeur en xyz, la formule en abc reflétera cela et retourneraxyz.xlsx

Pour cette raison, il est généralement préférable d'inclure une référence de cellule (toute référence de cellule), par exemple

= CELL ("nom de fichier", A1 )

L'utilisation de cette version signifie que vous n'obtiendrez que le nom du classeur dans lequel réside la formule.

Vous pouvez utiliser cette version légèrement plus courte

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

barry houdini
la source
2

J'ai trouvé que c'était la formule "la plus simple" pour renvoyer le nom de fichier uniquement:

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

or - created in VBA:

Formula = "=REPLACE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),1,FIND(""["",CELL(""filename"",A1)),"""")"

Pour retourner le chemin complet , cela fera:

=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")

or - created in VBA:

Formula = "=SUBSTITUTE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),""["","""")"
Gustav
la source
1

J'ai eu le même problème (la formule collée n'a pas fonctionné)! Une fois que j'ai remplacé le ,par ;dans la formule, cela a fonctionné parfaitement.

= MID (CELL ("filename"); SEARCH ("["; CELL ("filename")) + 1; SEARCH ("]"; CELL ("filename")) - SEARCH ("["; CELL ("filename) "))-1)

Polle
la source
Je pense que c'est parce que vous utilisez une version Euro d'Excel. La version Euro utilise des points-virgules au lieu de virgules pour les paramètres de fonction. La version internationale utilise également des virgules, je crois.
krowe2
Il ne s'agit pas vraiment de la version d'Excel que vous utilisez, mais plutôt du «délimiteur» que vous utilisez dans les paramètres régionaux.
deroby
1

La solution la plus simple est la suivante:

Dans votre fichier Excel, appuyez sur Alt+ F11, ce qui ouvre Microsoft Visual Basics for Applications (VBA). Dans VBA, sélectionnez Insert > Moduleet collez le code suivant

Public Function GetMyProp(prop As String) As String
    GetMyProp = ThisWorkbook.BuiltinDocumentProperties(prop)
End Function

Dans votre formule de type de fichier Excel: =GetMyProp("Title"). Cela montrera le titre de votre document dans la cellule choisie.

Benny Huyghe
la source
1

Si vous utilisez Excel en néerlandais, vous devez utiliser les noms de fonction néerlandais et utiliser des points-virgules au lieu de virgules:

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-1);1;VIND.SPEC("[";CEL("filename"));"")

Gast
la source