VBA nom du fichier

bigmousse

XLDnaute Occasionnel
Bonjour,
J'utilise l'appli "getopenfilename" pour que l'utilsateur puisse ouvrir le fichier,
Ensuite, j'ai besoin de récuperer le nom du fichier pour l'utiliser dans l'objet workbooks :
Workbooks("nom du fichier").sheets(x,y) ...

Le problème de l'appli getopenfilename me renvoie le chemin et pas le nom, alors comment faire???

Merci
mousse
 

mromain

XLDnaute Barbatruc
Re : VBA nom du fichier

bonjour bigmousse,

voici un exemple :
Code:
Sub test()
Dim pathFichier As String, nomFichier As String, tmpStr() As String
Dim leClasseur As Workbook

    'récupérer le fichier (path complet)
    pathFichier = Application.GetOpenFilename
    
    'ouvrir le fichier
    Set leClasseur = Application.Workbooks.Open(pathFichier)
    
    'maintenant tu peux travailler avec ce classeur...
    leClasseur.Sheets("toto").Range("A1") = "test"
    
    
    'si tu veux quand même récupérer le nom du fichier :
    tmpStr = Split(pathFichier, "\")
    nomFichier = tmpStr(UBound(tmpStr))
    
End Sub

a+
 

bigmousse

XLDnaute Occasionnel
Re : VBA nom du fichier

Je m'excuse pour ne pas t'avoir donner de retour, peut être je suis un peu pressé :

Voilà un morceau de mon code, j'ai apporté les corrections que tu m'as proposé mromain, je te remercie beaucoup, c'est ce que je voulais.

Code:
Set Mon_TdB = ThisWorkbook
    'ouverture de la boite de dialogue et selection du fichier par l'utilisateur
    FileToOpen = Application.GetOpenFilename("Fichier Excel (*.xls),*.xls)", , "Analyser le fichier", , True)
    'Variable type workbook du classeur à analyser
    j = UBound(FileToOpen)
    For z = 1 To j
    Set MES_DONNEES = Application.Workbooks.Open(FileToOpen(z))
    'récuperation du nom du fichier à partir du chemin renvoyé par l'application "GetOpenFilename"
    TmpStr = Split(FileToOpen(z), "\")
    FileName = TmpStr(UBound(TmpStr))
    TmpStr = Split(FileName, ".")
    FileName = TmpStr(LBound(TmpStr))
    Ma_Date = CDate(Mid(FileName, 7, 2) & "/" & Mid(FileName, 5, 2) & "/" & Mid(FileName, 1, 4))


Pour toi Lii, je viens de lire ta reponse, même si l'execution est longue, je devais avancer sur le fichier car j'ai d'autres points à traiter.
Je te remercie pour ta reponse et je pense que je te repondrais d'ici quelques jours après l'avoir testé et l'avoir compris. Sache que le temps d'éxecution reste ma priorité, ta reponse sera traité et tu auras un retour c'est sûr.
Je vous remercie pour votre aide, j'ai gagné un temps précieux.
Merci beaucoup
Salutations
mousse
 

Discussions similaires

Réponses
3
Affichages
400

Statistiques des forums

Discussions
312 391
Messages
2 087 985
Membres
103 690
dernier inscrit
LeDuc