[VB] Connaitre extension d'un fichier
matthoffman
Messages postés
405
Date d'inscription
Statut
Membre
Dernière intervention
-
atchalak -
atchalak -
Bonjour,
Je souhaiterais savoir quelle est la fonction (s'il en existe une) qui retourne l'extension (ou le type) d'un fichier.
Si vous ne savez pas et que vous connaissez une fonction retournant la version de Microsoft Office, c'est tout aussi bien :).
D'avance merci.
Je souhaiterais savoir quelle est la fonction (s'il en existe une) qui retourne l'extension (ou le type) d'un fichier.
Si vous ne savez pas et que vous connaissez une fonction retournant la version de Microsoft Office, c'est tout aussi bien :).
D'avance merci.
A voir également:
- [VB] Connaitre extension d'un fichier
- Fichier bin - Guide
- Changer extension fichier - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
15 réponses
ouai bon ba merci de ton aide :)
ta méthode est 'porc' dans le sens ou tu joue avec le feu ;) mais ca me parait la plus adequat pour mon problème.
Pour peu que je te crée un fichier .blablabla ba ca va merder lors du traitement parce que il croira que l'extension est "abla" au lieu de "blablabla" lol
ta méthode est 'porc' dans le sens ou tu joue avec le feu ;) mais ca me parait la plus adequat pour mon problème.
Pour peu que je te crée un fichier .blablabla ba ca va merder lors du traitement parce que il croira que l'extension est "abla" au lieu de "blablabla" lol
Comment l'utilisateur te donne le chemin du fichier? via une dialogue box ou autre??
en quel langage?? vb, php, c++ ?
en quel langage?? vb, php, c++ ?
Ba le titre du post c'est VB en meme temps alors bon le langage c'est VB ;)
Et j'obtiens le chemin du fichier par la fonction ActiveDocument.Path .
En fait je fais une macro dans un fichier Excel (ou Word) et donc voila je récupère les infos à partir du document ouvert.
Et j'obtiens le chemin du fichier par la fonction ActiveDocument.Path .
En fait je fais une macro dans un fichier Excel (ou Word) et donc voila je récupère les infos à partir du document ouvert.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
donc tout ce qu il y a apres le '.'..
ext=Right(ActiveWorkbook.FullName, 5)
if left(ext,1)<>"." then ext=Right(ActiveWorkbook.FullName, 4)
Ptit hic si ton fichier xl s apelle "monfichier..xls" (2003) il sera pris comme un 2007, mais sinon, ca marche
ext=Right(ActiveWorkbook.FullName, 5)
if left(ext,1)<>"." then ext=Right(ActiveWorkbook.FullName, 4)
Ptit hic si ton fichier xl s apelle "monfichier..xls" (2003) il sera pris comme un 2007, mais sinon, ca marche
Je viens d'ailleurs de penser à une méthode porc de récuperer l'extension.
On incremente un compteur tant que l'on ne trouve pas de "." dans le nom du fichier en partant de la droite.
Et l'extension correspond à la string en partant de la droite de longueur le compteur.
Mais comme je viens de le dire c'est porc et trop long pour ce que c'est ^^.
On incremente un compteur tant que l'on ne trouve pas de "." dans le nom du fichier en partant de la droite.
Et l'extension correspond à la string en partant de la droite de longueur le compteur.
Mais comme je viens de le dire c'est porc et trop long pour ce que c'est ^^.
Allez... chui sympa
Private Function FileExtension(NomFichier As String) As String Dim DotPos As Integer If InStr(1, NomFichier, ".") = 0 Then FileExtension = False Else While Left(Right(NomFichier, DotPos), 1) <> "." DotPos = DotPos + 1 Wend FileExtension = Right(NomFichier, DotPos - 1) End If End Function
Bonjour,
Je profites de la remontée de ce sujet pour proposer une solution variante :
Je profites de la remontée de ce sujet pour proposer une solution variante :
Dim Extension As String Extension = IIf(Mid(StrReverse(ThisWorkbook.Name), 4, 1) = ".", Right(ThisWorkbook.Name, 3), Right(ThisWorkbook.Name, 4))
Dim monNomDeFichier As String, extensionDeMonFichier As String extensionDeMonFichier = Right(monNomDeFichier, InStrRev(monNomDeFichier, "."))
Instr renvoit la première occurence du caractère passé en argument, inStrRev permet de commencer par la droite, dès qu'on est arrivés au premier ".", on a donc seulement l'extension du fichier à droite. cette méthode permet également de gérer les fichiers qui ont un ou plusieurs "." à l'intérieur
ah ben sinon, faut fare le contraire, et la y a pas d exeption :
ext=Right(ActiveWorkbook.FullName, 4)
if left(ext,1)<>"." then ext=Right(ActiveWorkbook.FullName, 5)
:) :p
j suis vraiment nul quand j m y met :)
ext=Right(ActiveWorkbook.FullName, 4)
if left(ext,1)<>"." then ext=Right(ActiveWorkbook.FullName, 5)
:) :p
j suis vraiment nul quand j m y met :)
sinon, tu peux faire quelque chose du style :
ext=Right(ActiveWorkbook.FullName, 4) '2003
if left(ext,1)<>"." then
ext=Right(ActiveWorkbook.FullName, 5) '2007
if left(ext,1)<>"." then
ext=""
msgbox "erreur d'extention)
end if
bon pour le coup.. c porc, mais ca gere toutes tes expetions :)
ext=Right(ActiveWorkbook.FullName, 4) '2003
if left(ext,1)<>"." then
ext=Right(ActiveWorkbook.FullName, 5) '2007
if left(ext,1)<>"." then
ext=""
msgbox "erreur d'extention)
end if
bon pour le coup.. c porc, mais ca gere toutes tes expetions :)
oups, desolé :)
Right(ActiveWorkbook.FullName, 3)
Right(ActiveWorkbook.FullName, 3)
Hmmm si je ne m'abuse, ta fonction me retournera les 3 dernieres lettres du nom complet ce qui fonctionne très bien pour office 2003 mais pas pour 2007 car les extensions possèdent 4 lettres (docx,xlsx...) ;).
Il me faudrait justement une fonction qui te recupere l'extension automatiquement de facon a ce que ma macro puisse s'adapter à 2003 et à 2007 sans soucis et sans avoir à modifier le code si on change de version.
Il me faudrait justement une fonction qui te recupere l'extension automatiquement de facon a ce que ma macro puisse s'adapter à 2003 et à 2007 sans soucis et sans avoir à modifier le code si on change de version.