Extraire un nom de fichier d'une chaine de caractères

Le
DomiTFX
Bonjour à tous,

Quelqu’un pourrait-il m’indiquer le code à utiliser via VBA pour
extraite tous les caractères à DROITE du dernier « » en partant d=
e
la droite

En clair pour extraire le nom d’un fichier
Les chaines de caractères dont je dispose sont toutes sous cette forme
(au format texte)

../../communs/ExpEmb/T1/2010/PlanCharg/PC 10_00101.pdf

Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »

Merci pour votre aide
Domi
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Modeste
Le #22243021
Bonsour®

"DomiTFX" a écrit
../../communs/ExpEmb/T1/2010/PlanCharg/PC 10_00101.pdf

Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »




=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)
Sam
Le #22243011
Bonjour, je ne suis pas un pro en VBA mais ceci fonctionne
nom complet du fichier en A1
nom du fichier en A2

Je ne me suis pas compliqué la vie en essayant de trouver tout de suite le
dernier "/"
à chaque "/", le programme remplit la variable final avec tout ce qui est à
droite
au dernier"/", il n'y a plus que le fichier

Sub fichier()
'
texte = Range("A1").Value
taille = Len(texte)
For rang = 1 To taille
If Mid$(texte, rang, 1) = "/" Then
final = Right$(texte, taille - rang)
End If
Next
Range("A2").Value = final
End Sub

Cordialement
Michel dit "Sam"
"DomiTFX"
Bonjour à tous,

Quelqu’un pourrait-il m’indiquer le code à utiliser via VBA pour
extraite tous les caractères à DROITE du dernier « » en partant de
la droite

En clair pour extraire le nom d’un fichier...
Les chaines de caractères dont je dispose sont toutes sous cette forme
(au format texte)

../../communs/ExpEmb/T1/2010/PlanCharg/PC 10_00101.pdf

Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »

Merci pour votre aide
Domi
Modeste
Le #22243161
Bonsour®
mauvaise i nterprétation
cette formule ne s'applique qu' au classeur xls
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)



a l'aide d'une fonction perso :

Function revstr(chaine As String) As String
' ----renvoi la chaine inversée----
Dim strLen As Integer
Dim strCache As String
Dim i As Integer
strLen = Len(chaine)
For i = strLen To 1 Step -1
strCache = strCache & Mid(chaine, i, 1)
Next i
revstr = strCache
End Function

puis utilisation de la formule :
=revstr(GAUCHE(revstr(A1);TROUVE("/";revstr(A1))-1))

A B
../../communs/ExpEmb/T1/2010/PlanCharg/PC 10_00101.pdf
= revstr(a1) fdp.10100_01 CP/grahCnalP/0102/1T/bmEpxE/snummoc/../..
=revstr(GAUCHE(revstr(A1);TROUVE("/";revstr(A1))-1)) C 10_00101.pdf
Charabeuh
Le #22244211
Bonsoir,

Par formule, on peut essayer (A9 est la cellule contenant le chemin + nom de
fichier):
''''''''''''''''''''''''''''''''''''''''''''''''''
=STXT(A9;TROUVE("}";SUBSTITUE(A9;"/";"}";NBCAR(A9)-NBCAR(SUBSTITUE(A9;"/";""))))+1;NBCAR(A9)-TROUVE("}";SUBSTITUE(A9;"/";"}";NBCAR(A9)-NBCAR(SUBSTITUE(A9;"/";"")))))
''''''''''''''''''''''''''''''''''''''''''''''''''


ou via VBA, testez :
''''''''''''''''''''''''''''''''''''''''''''''''''
Function NomFichier(X) As String
Dim Eclate
Eclate = Split(X, "/")
NomFichier = Eclate(UBound(Eclate))
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''

Cdlt





"DomiTFX" discussion :

Bonjour à tous,

Quelqu’un pourrait-il m’indiquer le code à utiliser via VBA pour
extraite tous les caractères à DROITE du dernier « » en partant de
la droite

En clair pour extraire le nom d’un fichier...
Les chaines de caractères dont je dispose sont toutes sous cette forme
(au format texte)

../../communs/ExpEmb/T1/2010/PlanCharg/PC 10_00101.pdf

Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »

Merci pour votre aide
Domi

Sam
Le #22244361
Bonjour,
j'avais ça aussi
=DROITE(A1;NBCAR(A1)-TROUVE("*";SUBSTITUE(A1;"/";"*";NBCAR(SUBSTITUE(A1;"/";"
"))-NBCAR(SUPPRESPACE(SUBSTITUE(A1;"/";" "))));1))
ou ça
=DROITE(A1;NBCAR(A1)-TROUVE("*";SUBSTITUE(A1;"/";"*";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"/";"")));1))

Cordialement
Michel dit "Sam"

"Charabeuh" 4c129db9$0$2955$
Bonsoir,

Par formule, on peut essayer (A9 est la cellule contenant le chemin + nom
de fichier):
''''''''''''''''''''''''''''''''''''''''''''''''''
=STXT(A9;TROUVE("}";SUBSTITUE(A9;"/";"}";NBCAR(A9)-NBCAR(SUBSTITUE(A9;"/";""))))+1;NBCAR(A9)-TROUVE("}";SUBSTITUE(A9;"/";"}";NBCAR(A9)-NBCAR(SUBSTITUE(A9;"/";"")))))
''''''''''''''''''''''''''''''''''''''''''''''''''


ou via VBA, testez :
''''''''''''''''''''''''''''''''''''''''''''''''''
Function NomFichier(X) As String
Dim Eclate
Eclate = Split(X, "/")
NomFichier = Eclate(UBound(Eclate))
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''

Cdlt





"DomiTFX" discussion :

Bonjour à tous,

Quelqu’un pourrait-il m’indiquer le code à utiliser via VBA pour
extraite tous les caractères à DROITE du dernier « » en partant de
la droite

En clair pour extraire le nom d’un fichier...
Les chaines de caractères dont je dispose sont toutes sous cette forme
(au format texte)

../../communs/ExpEmb/T1/2010/PlanCharg/PC 10_00101.pdf

Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »

Merci pour votre aide
Domi

Publicité
Poster une réponse
Anonyme