Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Nom de fichier sans chemin réseau ni extension

Philippe LAMACHE

XLDnaute Junior
Bonjour à tous,
Je cherche désespérément à extraire dans une cellule les derniers caractères (longueur variable) entre le dernier "_" et le "."
Voici mon code

Sub Ouvrir_Fichier()
Dim result As String
LectChemin$ = ThisWorkbook.Path
If ActiveLectChemin(LectChemin$) Then
Nom_Fichier = Application.GetOpenFilename("Fichiers Excel, *.xls;*.xlsx")
result = Nom_Fichier
result = Mid(result, 1, Len(result) - 4)
Do While Replace(result, "\", "") <> result
result = Mid(result, 2, Len(result) - 1)
Loop
If Nom_Fichier <> False Then
Workbooks.Open Filename:=Nom_Fichier
End If
Else
Exit Sub
End If
Feuil3.[G1048576].End(xlUp).Offset(1, 0).Value = Nom_Fichier
Nom_Fichier_Court = Nom_Fichier ' Nom_Fichier à raccourcir
Feuil3.[G1048576].End(xlUp).Offset(0, 1).Value = Nom_Fichier_Court
Cells.Copy
ThisWorkbook.Activate
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Nom_Fichier_Court"
Cells.Select
ActiveSheet.Paste
[A1].Select

Call Ferme_Autre_Fichier
Feuil2.Activate
End Sub

Mon 'Nom_Fichier' me renvoie, selon le cas :
\\cluster02\GRP21\G_METHOD\BOITE\ECV\Liste_des_RGF_Bât 1.xlsx
ou
\\cluster02\GRP21\G_METHOD\BOITE\ECV\Liste_des_RGF_Bâtiment 12.xlsx
ou
...

Je souhaiterais que mon 'Nom_Fichier_Court' me donne seulement :
Bât 1
ou
Bâtiment 12
ou
...

Quelqu'un peut-il m'aider ?
Par avance, merci.
 

chris

XLDnaute Barbatruc
Bonjour

Utilise le principe suivant
VB:
X = InStrRev(Nom_Fichier, "_") + 1
Y = InStrRev(NomFichier, ".") - 1
Nom_Fichier_Court = Mid(NomFichier, X, Y)

Pense ici à mettre ton code dans une balise Code avec le bouton </>
 

pierrejean

XLDnaute Barbatruc
Bonjour Philippe

Edit: Salut et bises Chris

Une fonction personnalisée qui pourra t’être utile
VB:
Function LeNom(GrandNom)
For n = Len(GrandNom) To 1 Step -1
If Mid(GrandNom, n, 1) = "." Then a = n
If Mid(GrandNom, n, 1) = "_" Then
    b = n
    LeNom = Mid(GrandNom, b + 1, a - b - 1)
    Exit Function
End If
Next
End Function
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…