Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
DomiTFX
Bonjour =E0 tous,

Quelqu=92un pourrait-il m=92indiquer le code =E0 utiliser via VBA pour
extraite tous les caract=E8res =E0 DROITE du dernier =AB \ =BB en partant d=
e
la droite

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

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

Dans ce cas pr=E9cis je voudrais r=E9cup=E9rer =AB PC 10_00101.pdf =BB

Merci pour votre aide
Domi

5 réponses

Avatar
Modeste
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)
Avatar
Sam
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" a écrit dans le message de news:

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
Avatar
Modeste
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
Avatar
Charabeuh
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" a écrit dans le message de groupe de
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

Avatar
Sam
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" a écrit dans le message de news:
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" a écrit dans le message de groupe de
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