RESOLU Récupérer nom de fichier sans le chemin ni l'extension

  • Initiateur de la discussion Initiateur de la discussion dss
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dss

XLDnaute Occasionnel
Bonjour,

J'ai parcouru bon nombre de sujets et je n'ai pu ou su trouver réponse à ma question.
Via Application.GetOpenFilename("Text Files (*.txt), *.txt") j'ouvre un fichier de la façon suivante :
.Name = fName1
Le problème c'est que fName1 (appel par Msgbox) me donne à la fois le chemin d'accès et l'extension
C:\Rep1/rep2/....../"nomfichier".txt
Or, je voudrais récupérer fName1 sans le chemin ni l'extension afin de pouvoir enregistrer le classeur avec le seul nom du fichier "nomfichier".
"nomdefichier" comporte 5 caractères et il me faudrait que les 4 premiers.
Avez-vous déjà eu à résoudre cette difficulté?
Merci de votre aide
Cordialement
 
Hello

avec la méthode application.getOpenFileName..
je présume que tu ouvres le fichier juste après..
FileToOpen = Application.GetOpenFilename("Fichiers excel (*.xlsm), *.xlsm")
Workbooks.Open FileToOpen

pour récuperer le nom du classeur seul.
suffit de rajouter juste après l'ouverture
NomFichier=activeworkbook.name

et pour virer l'extension..
un petit traitement de chaine de caractères
left(NomFichier,len(NomFichier)-5)
5 étant le nombre de caractères pour l'extenstion ".xlsm"
 
Re,

Merci pour votre réponse. En fait ci dessous extrait de l'ouverture d'un des trois fichiers texte, chacun récupérer par données==>importer fichier texte.

fName1 = Application.GetOpenFilename("Text Files (*.txt), *.txt") - J'ai limité l'ouverture aux seuls fichiers txt

Sheets("Feuil1").Select
With Sheets("Feuil1").QueryTables.Add(Connection:="TEXT;" & fName1, Destination:=Range("A1"))

.Name = fName1
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=True
End With

Cordialement
 
Hello
je vois pas trop ce qu'on est censé faire de ton bout de code..
mais
puisque fname est le chemin complet / Nomfichier + extension
et que
que tu veux récuperer fName1 sans le chemin ni l'extension et que
"nomdefichier" comporte 5 caractères et il me faudrait que les 4 premiers.

si tu fais ceci
nomdefichier=left(right(fname,9),4)

right(fname,9) récupère les 5 caractères du nom de fichier plus les 4 caractères de l'extention ".txt" (5+4 =9)
et left(...,4) récupère les 4 premiers caractères souhaités..
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour