cs_David_wklw
Messages postés48Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention24 mars 2006 8 juil. 2005 à 23:56
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
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 9 juil. 2005 à 02:38
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