VBA excell (lire fichiers dans multiples sous répertoires) - VB/VBA/VBS - Programmation
Marsh Posté le 11-02-2004 à 13:35:37
Il y a plusieurs solutions à ton problème...
peux tu être plus claire STP ?
Sir
Marsh Posté le 12-02-2004 à 12:17:41
Re
J ai un dossier qui contient plusieurs dossiers.
Dans ces dossier j ai un fichier .XLS
Je voudrais que ma macro Excell aille cherche se fichier, appplique les modifictions, l enregistre, le ferme PUIS elle passe au dossier suivant cherche le fichier .xls ouvre et ainsi de suite jusqu au dernier dossier.
j ai la commande GetOpenFilename :
______________________________________________________________
lesFichiers = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls", , , , True)
For Each f In lesFichiers
Workbooks.Open Filename:=f
[....]
Next f
______________________________________________________________
mais elle m'oblige à mettre ts mes fichiers xls dans un seul dossier. je souhaite qu il aille voir un par un dans tt les dossiers les fichiers xls.
Merci d avance
Marsh Posté le 18-02-2004 à 10:21:19
Bonjour,
Une reponse rapide (qui est loin d'etre parfaite, mais qui marche si tu n'a que deux niveau de repertoire (un repertoire parent, puis plusieur sous repertoires (qui n'ont eux meme pas de sous repertoire, sinon tu adaptes, faire un autre loop sur le contenue de la matrice (qui liste le chemin des repertoires)):
Sub list_rep()
Static s As Integer
Dim repertoire()
'<<<Detecter l'ensemble des sous-repertoire du repertoire principale, puis lister les fichiers>>>
'<<<Premier passage>>>
chemin = "c:\" '<<<Change le chemin pour ce que tu veux
myname = Dir(chemin, vbDirectory)
Do While myname <> ""
If myname <> "." And myname <> ".." Then
If (GetAttr(chemin & myname) And vbDirectory) = vbDirectory Then
Debug.Print myname
ReDim Preserve repertoire(s)
repertoire(s) = chemin & myname
s = s + 1
End If
End If
myname = Dir
Loop
'<<<Lister les fichier des repertoire>>>
For g = 0 To s - 1
MsgBox repertoire(g)
Set fs = Application.FileSearch
With fs
.LookIn = repertoire(g)
.Filename = "*.*"
.Execute
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i) '<<<ICI tu peux mettre ton code
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Que Dalle !!!"
End If
End With
Next
End Sub
PS: c'est une quasi copie de l'aide de microsoft 2000, comme quoi elle est pas si mal faite
Sinon une autre solution un peu plus complete sur MSDN, http://msdn.microsoft.com/library/ [...] 072000.asp
Bon courage
I.
Marsh Posté le 05-02-2004 à 14:31:37
Bonjour à tous
je cherche le code VBA Excell pour une macro
qui permet d'ouvrir les fichiers xls stockés
dans plusieurs sous répertoire
ex : fichier.xls se trouve dans dossier dossier1
fichier2.xls se trouve dans le dossier dossier2...
J ai besoin qu excel aille chercher le fichier1, le travail puis le ferme. ensuite il va chercher le fichier2.xls dans l autre dossier puis pareil et ainsi de suite pour ts les dossiers contenu dans mon repertoire.
j ai la commande openfiles mais elle moblige à mettre ts mes fichiers xls dans un seul dossier. je souhaite qu il aille voir dans tt les dossiers les fichiers xls.
Merci
---------------
homogene