[VBA]Comment obtenir le nom du fichier

miky973

XLDnaute Occasionnel
Bonjour à tous
J'ai commencé un code mais qui n'est pas du tout terminé (notament la gestion d'erreur)
Il me permet de mettre en mémoire un fichier.

voici ce code :
Code:
Public fichier As String
Sub test()
   
   Dim xlFiles
   Dim blnOuvert As Boolean
   Dim strMessage As String
   Dim wbk As Workbook
   Dim i As Integer
   Dim j As Integer



'   Affiche la boîte de dialogue Ouvrir
   fichier = Application.GetOpenFilename _
           (filefilter:="Fichiers Excel (*.xls),*.xls", _
            Title:="Sélectionnez le fichier à ouvrir", _
            MultiSelect:=False)
   
            
            'finir la contruction de l'ouverture du fichier!
                        
            MsgBox "le fichier est :" & fichier
            
            
            

'fichier = "Monfichier.xls"

End Sub

Je voudrai séparer mon fichier du chemin.

Ainsi en mettant fichier en public, je pourrai utiliser que le Nom du fichier pour mes autres calculs.

Merci pour votre aide.

Best Regards

Miky
 

Efgé

XLDnaute Barbatruc
Re : [VBA]Comment obtenir le nom du fichier

Bonjour miky973,
Une proposition :
VB:
Sub test2()
fichier = Application.GetOpenFilename _
           (filefilter:="Fichiers Excel (*.xls),*.xls", _
            Title:="Sélectionnez le fichier à ouvrir", _
            MultiSelect:=False)
            Class = Split(fichier, "\")
            MsgBox "le fichier est :" & Class(UBound(Class))
End Sub
Cordialement
 

job75

XLDnaute Barbatruc
Re : [VBA]Comment obtenir le nom du fichier

Bonjour miky973, salut Efgé :)

Autre possibilité, en utilisant un FileSystemObject :

Code:
Sub test()
Dim fichier As Variant, fso As Object, nomfichier As String
fichier = Application.GetOpenFilename _
  (filefilter:="Fichiers Excel (*.xls),*.xls", _
  Title:="Sélectionnez le fichier à ouvrir", _
  MultiSelect:=False)
If fichier <> False Then
  Set fso = CreateObject("Scripting.FileSystemObject")
  nomfichier = fso.GetFile(fichier).Name
  MsgBox nomfichier
End If
End Sub
A+
 

miky973

XLDnaute Occasionnel
Re : [VBA]Comment obtenir le nom du fichier

Bonjour miky973, salut Efgé :)

Autre possibilité, en utilisant un FileSystemObject :

Code:
Sub test()
Dim fichier As Variant, fso As Object, nomfichier As String
fichier = Application.GetOpenFilename _
  (filefilter:="Fichiers Excel (*.xls),*.xls", _
  Title:="Sélectionnez le fichier à ouvrir", _
  MultiSelect:=False)
If fichier <> False Then
  Set fso = CreateObject("Scripting.FileSystemObject")
  nomfichier = fso.GetFile(fichier).Name
  MsgBox nomfichier
End If
End Sub
A+

Bonjour Efgé, job75,

Ces deux méthodes fonctionne et je vous en remercie seulemetn je rencontre un soucis sur l'opération que je voulais faire enrécupérant le fichier.

L'application que je fais liste des fichiers source qui sont a jours par mois mais quii garde la même structure.

quand je lance mon appli je voudrai sélectionner une fois le fichier comme ci dessus et utilisé ma variable NomFichier pour toutes mes autres fonctions.
Seulement cela ne fonctionne pas! mdr

Exemple de ce que j'aimerai réaliser:
Sub SourceTOP()
'
' SourceTOP Macro

Range("B8").Select
ActiveCell.FormulaR1C1 = _
"=MATCH(RC[-1],'[NomFichier]Actions'!C2,0)"
Range("B8").Select
Selection.AutoFill Destination:=Range("B8:B13"), Type:=xlFillDefault
Range("B8:B13").Select
Range("B8").Select
End Sub

Merci pour votre aide

A+
 
G

Guest

Guest
Re : [VBA]Comment obtenir le nom du fichier

Bonjour Tous,
Fichier étant une variable Public:
Code:
IF Dir(fichier) <>"" then
ActiveCell.FormulaR1C1 = _
"=MATCH(RC[-1],'[" & Fichier & "]Actions'!C2,0)"
Else
MsgBox "Aïe! pas de fichier"
End if

A+
 
G

Guest

Guest
Re : [VBA]Comment obtenir le nom du fichier

Re,
Salut Efgé:)

Attention: ne pas oublier les ' dans

"=MATCH(RC[-1],['" & Fichier & "]Actions'!C2,0)"

si tu as des noms de fichier avec des espaces.

A+
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
14
Affichages
378
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 153
Messages
2 085 800
Membres
102 980
dernier inscrit
brossadan