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

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
 

vgendron

XLDnaute Barbatruc
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"
 

dss

XLDnaute Occasionnel
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
 

vgendron

XLDnaute Barbatruc
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..
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 275
Membres
103 170
dernier inscrit
HASSEN@45