Ouverture de fichier sans connaître le nom

Résolu
Lameche15
Messages postés
155
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
29 décembre 2021
- 1 juil. 2019 à 15:59
Lameche15
Messages postés
155
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
29 décembre 2021
- 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




--

4 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
Modifié le 1 juil. 2019 à 17:14
Bonjour,

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

Cordialement
Patrice
0
vb95
Messages postés
2634
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
27 mai 2022
151
1 juil. 2019 à 21:05
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
0
Lameche15
Messages postés
155
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
29 décembre 2021

2 juil. 2019 à 11:57
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
0
Lameche15
Messages postés
155
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
29 décembre 2021

2 juil. 2019 à 12:00
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

--
0