Extraire un nom de fichier d'une chaine de caractères
5 réponses
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)
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)
Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »
Merci pour votre aide Domi
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" <domi83@laposte.net> a écrit dans le message de news:
8d38dd92-10f2-4d58-9352-2ce044a236dc@a30g2000yqn.googlegroups.com...
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)
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)
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
Bonsour®
mauvaise i nterprétation
cette formule ne s'applique qu' au classeur xls
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
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
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)
Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »
Merci pour votre aide Domi
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" <domi83@laposte.net> a écrit dans le message de groupe de
discussion :
8d38dd92-10f2-4d58-9352-2ce044a236dc@a30g2000yqn.googlegroups.com...
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)
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)
Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »
Merci pour votre aide Domi
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)
Dans ce cas précis je voudrais récupérer « PC 10_00101.pdf »
Merci pour votre aide Domi
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" <Please@FeedBack.fr> a écrit dans le message de news:
4c129db9$0$2955$ba4acef3@reader.news.orange.fr...
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" <domi83@laposte.net> a écrit dans le message de groupe de
discussion :
8d38dd92-10f2-4d58-9352-2ce044a236dc@a30g2000yqn.googlegroups.com...
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)
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)