Boucle : tous les fichiers d'un dossier et non un spécifique - VB/VBA/VBS - Programmation
Marsh Posté le 20-12-2004 à 19:26:11
tu peut placer le nom de tes fichiers ( et leurs chemin ) dans un tableau du style FICHIERS(100) dans ta boucle DIR
puis tu reprend le tableau FICHIERS dans une boucle du style:
i=0
Do
If FICHIERS(i)="" then exit do
Workbooks.Open FICHIERS(i)
N=ActiveWorkbook.Name
...
TRAITEMENT
...
Workbooks(N).Close False
i=i+1
Loop
Marsh Posté le 20-12-2004 à 15:33:45
Bonjour tout le monde !
Voilà j'ai un problème, j'ai réussi à créer une macro qui ouvre tous les fichiers d'un dossier et après grâce à une boucle à appliquer une 2ème macro à tous ces fichiers. Mon problème est le suivant comment je peux spécifier dans ma 2ème macro qu'elle doit s'appliquer à tous les fichiers (ou l'un après l'autre, ou un fichier par un fichier) et non à un fichier spécifique !?
En clair à la place de Windows("PR158070o.xls" ).Activate qu'est ce que je dois mettre ??? Y a t'il moyen de spécifier tous les fichiers à la place de PR158070o.xls ???
Merci !
Pour exemple le début de ma macro :
ChDir "I:\SHRRESO\CEP_PROD\Cep05\137\1371"
Workbooks.Open FileName:= _
"\\PARDFS01\Shared\SHRRESO\CEP_PROD\Cep05\137\1371\Master MW 05.xls", _
UpdateLinks:=0
ChDrive "I"
ChDir "I:\SHRRESO\CEP_PROD\Cep05\137\1371\Test"
Workbooks.Open Dir("\\PARDFS01\Shared\SHRRESO\CEP_PROD\Cep05\137\1371\Test\*.XLS" ), UpdateLinks:=0
CEP = Dir()
While CEP <> ""
Workbooks.Open CEP, UpdateLinks:=0
CEP = Dir()
Wend
Windows("Macro CEP 2005.XLS" ).Activate
For i = 1 To Application.Workbooks.Count - 1
If ActiveWorkbook.Name <> "Macro CEP 2005.XLS" Then
Macro1
Else: Application.ActiveWindow.ActivateNext
End If
Next
End Sub
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 10/12/04 by
'
' Keyboard Shortcut: Ctrl+a
'
' Mise en forme du fichier
' Worksheet 1
Windows("PR158070o.xls" ).Activate
Sheets("Renseignements" ).Select
ActiveSheet.Unprotect Password:="xxxx"
Windows("Master MW 05.xls" ).Activate
Sheets("Renseignements" ).Select
Range("D2" ).Select
Selection.Copy
Windows("PR158070o.xls" ).Activate
Range("D2" ).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("Master MW 05.xls" ).Activate
Sheets("Renseignements" ).Select
Range("G2" ).Select
Selection.Copy
Windows("PR158070o.xls" ).Activate
...
Message édité par jujuman le 18-02-2007 à 02:52:37