Récupération nom de tous les fichiers d'un dossier
Igota
Messages postés3Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention25 avril 2005
-
20 avril 2005 à 15:18
Igota
Messages postés3Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention25 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
A voir également:
Récupération nom de tous les fichiers d'un dossier
01Dawi
Messages postés8Date d'inscriptionsamedi 19 avril 2003StatutMembreDernière intervention21 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)
Igota
Messages postés3Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention25 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.