apache88
Messages postés78Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 mars 2014
-
2 août 2007 à 14:37
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
2 août 2007 à 18:08
Bonjour,
j'aurais voulu savoir s'il était possible de créer un programme en VBA qui va parcourir tout un dossier et sous-dossiers à la recherche de fichiers excel, les ouvre un par un et modifier quelque truc dedans?
Pour ouvrire et modifier un fichiers je sais le faire, mais c'est pour qu'il scan un dossier pour trouver les fichiers excel et les ouvre un par un que je sais pas trop
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 2 août 2007 à 15:17
salut,
voici mon snippet pour lister les fichiers :
Sub Cherche_Fichiers_Dans_Dossier()
' *** le résultat peut apparaitre dans un message box (voir la syntaxe
' mise en commentaire dans le code) mais je l'ai occulté car, pour cet exemple,
' il y a environ 1 000 fichiers dans c:\. Je me sers donc des cellules Excel
Dim strMessage As String
Dim i As Long
Set fs = Application.FileSearch
With fs
.LookIn = "C:" ' *** mettre ici le dossier voulu !
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox "Il y a " & .FoundFiles.Count & _
" fichier(s) trouvé(s)."
For i = 1 To .FoundFiles.Count
Cells(i, 1).Value = .FoundFiles(i)
'strMessage = strMessage & .FoundFiles(i) & vbCrLf
Next i
'MsgBox strMessage
Else
MsgBox "Il n'y a aucun fichier."
End If
End With
Pour les ouvrir un par un, passe dans la boucle For i ... To ... Next
Suffit d'y mettre l'ouverture, le traitement, et la fermeture de .FounFiles(i), tous les fichiers seront ainsi traités
apache88
Messages postés78Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 mars 2014 2 août 2007 à 15:51
Encore une chose svp.
Voici le code maintenant:
Private Sub CommandButton1_Click()
' *** le résultat peut apparaitre dans un message box (voir la syntaxe
' mise en commentaire dans le code) mais je l'ai occulté car, pour cet exemple,
' il y a environ 1 000 fichiers dans c:\. Je me sers donc des cellules Excel
Dim strMessage As String
Dim i As Long
Set fs = Application.FileSearch
With fs
.LookIn = "H:\temp" ' *** mettre ici le dossier voulu !
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox "Il y a " & .FoundFiles.Count & _
" fichier(s) trouvé(s)."
For i = 1 To .FoundFiles.Count