Récupération nom de tous les fichiers d'un dossier

Igota Messages postés 3 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 25 avril 2005 - 20 avril 2005 à 15:18
Igota Messages postés 3 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 25 avril 2005 - 25 avril 2005 à 10:34
Bonjour, sous VBA, quelle-est le code qui permet de récupérer tout les noms de fichiers dans un dossier spécifique ? J'ai essayé ça :

Sub recherche_fichiers()
' Ce programme permet de rechercher tous les fichiers Excel
' du répertoire spécifié et de les copier dans une feuille de calcul.
Dim I As Long

Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.LookIn = "S:\traitement\importation"
.SearchSubFolders = True
.Execute
With .FoundFiles
For I = 1 To .Count
ActiveSheet.Cells(I, 1) = .Item(I)
Next I
End With
End With
Range("A1").Sort [a1]
End Sub

Et dans une autre procédure j'ai utilisé un truc avec la fonction Gauche mais ça à pas l'air de marcher. Tous mes fichiers sont des "S:\traitement\importation". En fait j'essaye de faire un programme permettant de récupérer les données contenu dans chaque fichier pour les traiter sur une nouvelle feuille.
Note : le nombre de fichiers augmente à chaque fois au fil du temps (1 ou 2 en plus chaque jour à peu près).

Merci d'avance pour vos réponses

3 réponses

01Dawi Messages postés 8 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 21 avril 2005
21 avril 2005 à 18:17
Perso la derniere fois que j'ai eu besoin de ca j'me suis pas cassé trop le cul :
j'ai utilisé un filelistbox que j'ai mis evidemment en visible=false
je le bloque sur le répertoire par

File1.Path=...
le nombre de fichier dans ce répertoire par
nbFi=File1.Listcount
Et le nom de chaque fichier par
NomFi=File1.List(i)

voila
j'espere que c'est faisable sous vba

C'est l'histoire balade
du Kangourou Nomade
0
Igota Messages postés 3 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 25 avril 2005
23 avril 2005 à 16:53
OK merci j'vais tester ça lundi, car là faut profiter du weekend !! :)





Qui saute toujours plus

haut pour piétiner les lèches fachos !
0
Igota Messages postés 3 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 25 avril 2005
25 avril 2005 à 10:34
Apparement c'est pas possible, sous VBA les données d'une liste ne peuvent provenir que de cellules, dponc ça me servirais pas à grand chose.
Par contre j'ai une autre question, dans ce code :

Sub recherche_fichiers()
Dim i As Long, j As Long
Dim nbcells As Integer
'On récupère les chemins d'accès aux fichiers
Application.ScreenUpdating = False
With Application.FileSearch '???
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.LookIn = "S:\traitement\importation"
.SearchSubFolders = True
.Execute
With .FoundFiles
For i = 1 To .Count
ActiveSheet.Cells(i, 1) = .Item(i)
Next i
End With
End With
Range("A1").Sort [a1]

'On va récupérer le numéro du produit ainsi que la date à partir de la 1ère colonne
Range("a1:a65536").Select
nbcells = 0
For Each c In Selection
If c.Value <> "" Then
nbcells = nbcells + 1
End If
Next c
For j = 1 To nbcells
ActiveSheet.Cells(j, 2) = "=MID(RC[-1],27,4)"
ActiveSheet.Cells(j, 3) = "=MID(RC[-2],32,6)"
Next j
End Sub

Seulement je voudrais insérer une ligne de titre au tout début mais quand je fais commencer mes 2 boucles i et j à 2 (For i = 2 to .count pour la 1ère), ça me zappe toujours la 1ère valeur (= le 1er fichier). Comment faire ? J'suis sûr que c'est un truc tout con en plus mais j'ai beau tourner ma boucle dans tous les sens, j'arrive pas à trouver.
0
Rejoignez-nous