Ouvrir tous les fichier excel d'un dossier

Signaler
Messages postés
18
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
11 mai 2006
-
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
-
Pour mon stage, je doit traiter des fichier à l'aide de macro:

Mais mon problème pour l'instant c'est comment faire une boucle sur tous les fichiers d'un dossier pour les traiter un par un.

un truc du type:

for each fichier in dossier
traiter(fichier)

Merci d'avance

2 réponses

Messages postés
48
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
24 mars 2006

As-tu etudie foundfiles filesearch...

Exemple vba excel

Set fs = Application.FileSearch
With fs
.LookIn = "C:\My Documents"
.FileName = "cmd*"
If .Execute(SortBy:=msoSortbyFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,

Je pense que c'est ce que tu cherches.

Ce code ouvre tous fichiers .xls sélectionnés d'un répertoire.

Pour sélectionner les fichiers, appuyer sur la touche MAJ, lorsque les
fichiers ont été ouverts, dans le menu Fenêtre les sélectionner un à un
pour les traiter.



Option Explicit

Sub OuvreClasseur()

Dim strFiles

Dim xlFiles

Dim blnOuvert As Boolean

Dim strMessage As String

Dim wbk As Workbook

Dim i As Integer

Dim j As Integer



'Affiche la boîte de dialogue Ouvrir

strFiles = Application.GetOpenFilename _

(FileFilter:="Fichiers Excel (*.xls),*.xls", _

Title:="Sélectionnez les fichiers à ouvrir", _

MultiSelect:=True)



'Teste si des fichiers ont été sélectionnés

If TypeName(strFiles) = "Variant()" Then

ReDim xlFiles(UBound(strFiles))

For i = 1 To UBound(strFiles)



'Contrôle l'exention du fichiers

If Right(strFiles(i), 3) = "xls" Then



'Teste si le fichier est déjà ouvert

blnOuvert = False

For Each wbk In Workbooks

If wbk.Path & "" & wbk.Name = strFiles(i) Then

blnOuvert = True

End If

Next wbk



'Stocke le nom de fichiers dans un tableau

If Not blnOuvert Then

j = j + 1

xlFiles(j) = strFiles(i)

strMessage = strMessage & strFiles(i) & vbCr

End If

End If

Next i



'Ouvre tous les fichiers Excel après confirmation

If j > 1 Then

strMessage = "Confirmez-vous l'ouverture des fichiers :" _

& vbCr & strMessage

If MsgBox(strMessage, vbYesNo + vbQuestion) = vbYes Then

For i = 1 To j

Workbooks.Open FileName:=xlFiles(i)

Next i

End If

End If

Else

MsgBox "Aucun fichier sélectionné"

End If

End Sub



jpleroisse