Excel prelever bout chaine de caractère
Résolu
printfx000
-
printfx000 -
printfx000 -
Salut, dans un de mes classeurs excel, j'ai plusieurs noms de fichiers enregistrés sous forme de chaine de caractères dans une des colonnes de mon classeur.
Ce que je souhaiterais faire, c'est extraire uniquement le morceau de la chaine qui indique de quel type est mon fichier.
(Ex: dans monfichier.pdf, je souhaiterais garder que .pdf)
Je sais qu'il y a une fonction pour cela en vba: Right(String prelever, int taille) ou Left(String prelever, int taille).
Pour les 9/10 de mes fichiers qui sont des .pdf, des .doc, ou des .zip, y'a pas de souci: je fixe taille à 4 dans ma macro.
Cependant, il y a aussi des fichiers .model ou .z, (et d'autres encore) dont la fin de la chaine n'est pas égale à 4 pour le type de format.
J'me suis dit qu'on pouvait faire varier taille en fonction d'un certain paramètre, mais je ne vois pas lequel et je ne sais pas du tout comment me sortir de cette situation.
Pourriez vous m'aider, svp ? Merci.
Ce que je souhaiterais faire, c'est extraire uniquement le morceau de la chaine qui indique de quel type est mon fichier.
(Ex: dans monfichier.pdf, je souhaiterais garder que .pdf)
Je sais qu'il y a une fonction pour cela en vba: Right(String prelever, int taille) ou Left(String prelever, int taille).
Pour les 9/10 de mes fichiers qui sont des .pdf, des .doc, ou des .zip, y'a pas de souci: je fixe taille à 4 dans ma macro.
Cependant, il y a aussi des fichiers .model ou .z, (et d'autres encore) dont la fin de la chaine n'est pas égale à 4 pour le type de format.
J'me suis dit qu'on pouvait faire varier taille en fonction d'un certain paramètre, mais je ne vois pas lequel et je ne sais pas du tout comment me sortir de cette situation.
Pourriez vous m'aider, svp ? Merci.
A voir également:
- Excel prelever bout chaine de caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Liste déroulante excel - Guide
- Caractere speciaux - Guide
- Word et excel gratuit - Guide
11 réponses
Bonjour
Function garder_suffixe(nomfich As String) As String garder_suffixe = Split(nomfich, ".")(1) End Function
Je ne peux pas te le dire: je n'ai jamais vu de nom de fichier avec plusieurs points dans leur désignation....
Y'a t'il un moyen de partir de la droite de la chaine de caractère et faire en sorte que le prelevement s'arrête au premier "." trouvé ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
peut etre ceci
et bonne journée à tous les deux
peut etre ceci
Public Function ext(nf As String) As String Dim pp As Long Dim fn As String fn = StrReverse(nf) pp = InStr(1, fn, ".") ext = StrReverse(Left(fn, pp - 1)) End Function
et bonne journée à tous les deux
Function garder_suffixe(nomfich As String) As String
garder_suffixe = Split(nomfich, ".")(0)
End Function
Merci d'avoir pas répondu à ma remarque sur les noms de fichiers à plusieurs points, j'aurais peut-^tre appris quelque chose...
moi, j'essaie de partager. toi non
Belle mentalité
garder_suffixe = Split(nomfich, ".")(0)
End Function
Merci d'avoir pas répondu à ma remarque sur les noms de fichiers à plusieurs points, j'aurais peut-^tre appris quelque chose...
moi, j'essaie de partager. toi non
Belle mentalité
désolé de t'avoir offensé.
J'avais pas compris que tu attendais une réponse.
Pour répondre à ta question, certains de mes fichiers s'appelent par exemple:
"fichier.attachment1.pdf"
Comme tu le vois, y'a 2 "." dans la chaine.
Merci pour les réponses précedentes.
Et encore, Mille excuses :D .
J'avais pas compris que tu attendais une réponse.
Pour répondre à ta question, certains de mes fichiers s'appelent par exemple:
"fichier.attachment1.pdf"
Comme tu le vois, y'a 2 "." dans la chaine.
Merci pour les réponses précedentes.
Et encore, Mille excuses :D .
C'est encore moi.
D'après ce que j'ai compris, la fonction Split fonctionne un peu comme Explode en php.
Cependant, elle commence à GAUCHE de la chainde de caractères.
Existe t-il une fonction identique mais qui commence à DROITE ?
D'après ce que j'ai compris, la fonction Split fonctionne un peu comme Explode en php.
Cependant, elle commence à GAUCHE de la chainde de caractères.
Existe t-il une fonction identique mais qui commence à DROITE ?
j'étais pas réveillé ce matin...
Function garder_suffixe(nomfich As String) As String tablo = Split(nomfich, ".") garder_suffixe = tablo(UBound(tablo)) End Function
Merci de ta réponse,
mais quand j'essaye, j'ai une erreur de compilation: ils me disent: Tableau attendu.
Si tu pouvais m'aider encore une fois sur ce coup :D ...
mais quand j'essaye, j'ai une erreur de compilation: ils me disent: Tableau attendu.
Si tu pouvais m'aider encore une fois sur ce coup :D ...
Curieux, chez moi ca marche
construit avec XL2007 et enregistré en XL2003
https://www.cjoint.com/?3DtsUpHEIn7
peut-^tre ca:
construit avec XL2007 et enregistré en XL2003
https://www.cjoint.com/?3DtsUpHEIn7
peut-^tre ca:
Function garder_suffixe(nomfich As String) As String Dim tablo tablo = Split(nomfich, ".") garder_suffixe = tablo(UBound(tablo)) End Function