Ouverture de fichier sans connaître le nom [Résolu]

Messages postés
126
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
- - Dernière réponse : Lameche15
Messages postés
126
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
- 2 juil. 2019 à 12:00
Bonjour,

Je souhaiterais pouvoir balayer tous les sous-dossiers contenant chacun un fichier excel et après l'ouvrir, copier la première ligne et la coller dans le classeur contenant la macro.
J'ai commencé à écrire le code suivant:

 Sub Liste_Unique()
Racine = CurDir

Set fs = CreateObject("Scripting.FileSystemObject")
Set Dossier = fs.getfolder(Racine)
For Each d In Dossier.SubFolders

nomfichier = Dir(d & "\*.xlsx")
MsgBox nomfichier
'Workbooks.Open Filename:=Dir(d & "\*.xlsx")

'Workbooks.Open nomfichier
Next

End Sub


Voici le message d'erreur que j'obtiens:


Quelqu'un a t-il une idée du problème?

Merci d'avance




--
Afficher la suite 

4 réponses

Messages postés
7856
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
6 décembre 2019
16
0
Merci
Bonjour,

Pour ouvrir un fichier, il est préférable de donner le chemin complet (DIR ne fournit que le nom)

Cordialement
Patrice
Commenter la réponse de Patrice33740
Messages postés
1980
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
8 décembre 2019
77
0
Merci
Bonjsoir
En complément de la réponde de Patrice33740 que je salue un lien utile : https://www.excel-downloads.com/threads/fonction-dir.139255/
Ceci ne te renvoie que le nom du fichier
Commenter la réponse de vb95
Messages postés
126
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
0
Merci
Du coup je tente ce code mais rien n'y fait:

Sub Liste_Unique()
Dim Racine, nomfichier, fichier As String

Racine = "F:\Dossiers Communs\THM\RECENSEMENT DES MS\Fichiers à envoyer à AREO\MURS"

Set fs = CreateObject("Scripting.FileSystemObject")
Set Dossier = fs.getfolder(Racine)
For Each d In Dossier.SubFolders

nomfichier = Dir(d & "\*.xlsx")
'MsgBox d
'MsgBox nomfichier

fichier = "" & Racine & "\" & d & "\" & nomfichier
Workbooks.Open Filename:="" & fichier



'Workbooks.Open fichier


Next


End Sub
Commenter la réponse de Lameche15
Messages postés
126
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
0
Merci
Pardon autant pour moi j'ai trouvé mon erreur, d est suffisant puisque le dir me retourne le chemin en entier jusqu'au sous dossiers

Merci infiniment pour votre aide

--
Commenter la réponse de Lameche15