Le 30/09/2018 à 10:18, Laurent Balland-Poirier a écrit :
Bonjour,
La formule dans Cals permettant de récupérer le nom du fichier est
=CELLULE("FILENAME"). La chaîne renvoyée contient le chemin absolu + le
nom du fichier + l'extension du fichier + la feuille. Il faut donc
découper cette chaîne pour ne récupérer que l'info qui t'intéresse.
Il n'y a pas de formule permettant de parcourir la chaîne de caractère à
l'envers, et donc je ne vois pas trop comment trouver le dernier "/". La
solution par macro donnée par Thierry est donc la seule solution que je
vois.
C'est toujours préférable d'utiliser des fonctions du tableur plutôt que
des macros.
Par macro, une astuce est de découper la chaîne sur les "/" par Split().
On obtient alors une tableau duquel on ne garde que ce qu'on veut.
Noter que l'exemple donné dans le lien fourni par Thierry, la fonction
InStrRev() est utilisée. Celle-ci n'est disponible que lorsqu'on active
la compatibilité VBA par :
Option VBAsupport 1
Du coup, je préfère Split() ;-)
Note : pour que ça marche à tous les coups, il faut prendre soin
d'appeler la fonction ConvertToURL() d'abord.
Voici un (trois !) exemple(s), tirés de là :
https://wiki.documentfoundation.org/Macros/Basic_Primitives
8< -----------------------------------------------------------------
Global Const IOPRIM_PATHSEPCHAR = "/"
Global Const IOPRIM_EXTSEPCHAR = "."
Function ExtractFileExt(ByRef pFileName As String) As String
'Retrieves the extension part of a file name.
'Input:
'-- pFileName: the file name to be processed (in URL or OS form).
'Output: The file extension, without leading dot.
'Note: This does NOT check for the file/path existence.
Dim l_URLName As String
Dim l_Array() As String
Dim l_Ext As String
l_Ext = ""
l_URLName = ConvertToURL(pFileName)
l_Array = Split(l_URLName, IOPRIM_EXTSEPCHAR)
If (UBound(l_Array) > 0) Then
l_Ext = l_Array(UBound(l_Array))
End If
ExtractFileExt = l_Ext
End Function 'ExtractFileExt
Function ExtractFileName(ByRef pFileName As String) As String
'Retrieves a filename without access path from a FQDN file name.
'Input:
'-- pFileName: the file name to be processed (in URL or OS form).
'Output: The file name without the path part.
'Note: this does not check for the file/path existence.
'See also JustFileName().
Dim l_URLName As String
Dim l_Array() As String
l_URLName = ConvertToURL(pFileName)
l_Array = Split(l_URLName, IOPRIM_PATHSEPCHAR)
ExtractFileName = l_Array(UBound(l_Array))
End Function 'ExtractFileName
Function ExtractFilePath(ByRef pFileName As String) As String
'Extracts the path from a given FQDN file name.
'Input:
'-- pFileName: the file name to be processed (in URL or OS form).
'Output: The path part of pFileName, in URL form and terminated with a /
(slash).
'Note: this does not check for the file/path existence.
Dim l_URLName As String
Dim l_Array() As String
Dim l_Path As String
l_Path = ""
l_URLName = ConvertToURL(pFileName)
l_Array = Split(l_URLName, IOPRIM_PATHSEPCHAR)
If (UBound(l_Array) > 0) Then
l_Array(UBound(l_Array)) = ""
l_Path = Join(l_Array, IOPRIM_PATHSEPCHAR)
End If
ExtractFilePath = l_Path
End Function 'ExtractFilePath
--------------------------------------------------- >8
Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la liste
reçoive une copie de votre réponse.
Bien cordialement,
--
Jean-Francois Nifenecker, Bordeaux
--
Envoyez un mail à users+unsubscr...@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