Extension de fichier quelconque

fhoest

XLDnaute Accro
Bonjour,
je recherche le moyen de trouver l'extension d'un fichier a partir d'un chemin complet puis fichier sans l'extension,

mais je ne parviens pas a trouver
exemple:
Dans c:\documents ...\mon_fichier
j'ai un fichier .doc ou .docx ou encore .pdf ou autre.
comment puis je faire pour trouver l'extension du fichier sans forcement l'ouvrir auparavant.

j'ai connaissance de fullname mais pour ça il faut que le fichier soit ouvert (enfin je pense)
Merci.
Fhoest
 
G

Guest

Guest
Re : Extension de fichier quelconque

Bonjour,

L'extension:
Code:
Split(NomCompletFichier, ".")(UBound(Split(NomCompletFichier, ".")))

Ou
Code:
Right(NomCompletFichier, Len(NomCompletFichier) - InStrRev(NomCompletFichier, "."))
End Sub

A+

[Edit] Salut Pierrot:)
 

fhoest

XLDnaute Accro
Re : Extension de fichier quelconque

De retour des corvées de course...
Bonjour Pierrot93,et Hasco
merci pour vos réponses je me penche la dessus et vous tiens au courant.
Mon problème reste toujours identique peut etre me suis-je mal exprimé.
j'essai avec d'autre mot
j'ai un chemin (string)
qui contient le chemin complet du fichier que je vais ouvrir par une macro soit un PDF soit un doc word version (doc ou docx) ou encore autre type de fichier
lorsque je vais ouvrir le fichier
il faut avant de l'ouvrir que je sache si le format du fichier du chemin complet + le fichier mais sans
l'extension spécifier est un doc word ou pdf mais aussi doc ou docx selon les versions car je doit choisir ma macro a l'aide d'un bouton qui dit ouvrir pdf ou ouvrir word.
autrement dit un exemple:
J'ai le chemin:
chemin=c:\mesdocuments\leforum\monfichieraouvir (sans le .*)
le resultat souhaité
si monfichieraouvrir = .pdf msgbox "pdf"
si monfichieraouvrir= document word trouver si .doc ou .docx msgbox "doc" ou msgbox"docx"
j'espère avoir été plus claire dans mes explication (bien que ce ne soit pas évident)

Encore merci.
 
Dernière édition:

fhoest

XLDnaute Accro
Re : Extension de fichier quelconque

Bonjour à tous
si toute fois quelqu'un est intéressé j'ai trouvé la solution a mon problème
voici pour vous:
Code:
Public chemin , fichier, chmfichier, extension As String

Function Getcheminetfichier(DriveSpec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fichier = fso.GetbaseName(DriveSpec)
   chmfichier = fso.GetParentFolderName(DriveSpec)
End Function

Function GetAnExtension(DriveSpec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   extension = fso.GetExtensionName(DriveSpec)
End Function

Function ReportFileStatus(filespec)
   Dim mesext(10)
   mesext(0) = "pdf"
   mesext(1) = "doc"
   mesext(2) = "docx"
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   For x = LBound(mesext) To UBound(mesext)
   If mesext(x) = "" Then Exit For
   If (fso.FileExists(filespec)) Then
   Else:
   filespec = chmfichier & "\" & fichier & "." & mesext(x)
   End If
   Next x
  chemin = filespec
End Function

Sub wordpdf()
On Error Resume Next

Dim strFichier As String
strFichier = chemin
Getcheminetfichier (strFichier)
ReportFileStatus (strFichier)
GetAnExtension (chemin)

Select Case extension
Case Is = "doc"
Call ouvertureword
Case Is = "docx"
Call ouvertureword
Case Is = "pdf"
Call RunPDFWithExe
End Select
End Sub

Sub ouvertureword()
Dim objWord As New Word.Application
''ouvrir un document Word
''On Error Resume Next
objWord.Documents.Open chemin
'rendre Word visible
objWord.Visible = True
'objWord.Documents(1).Close
'quitter l'application Word
'objWord.Quit
'libérer la mémoire
Set objWord = Nothing
End Sub

Sub RunPDFWithExe()
Dim MyPath As String
Dim MyFile As String
MyPath = "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"
MyFile = chemin
Shell MyPath & " " & MyFile, vbNormalFocus
End Sub

Ajouter un bouton qui appelle le sub wordpdf auquel un chemin aura été défini auparavant.

Cordialement et merci encore a ceux qui on chercher avec moi.:D
 

Discussions similaires

Réponses
3
Affichages
362
Réponses
15
Affichages
842
Réponses
36
Affichages
1 K

Statistiques des forums

Discussions
312 176
Messages
2 085 965
Membres
103 069
dernier inscrit
jujulop