Exécuter macro sur plusieurs fichiers excel
marie
-
ambassadeur777 -
ambassadeur777 -
Bonjour,
Je suis très débutante en VBAXL, et j'aimerais pouvoir exécuter une macro sur plusieurs fichiers .xls.
En fait, le but de mon programme est de pouvoir récupérer tous les fichiers execl qui se trouvent dans un répertoire et exécuter ma macro sur chacun de ces fichiers. mais je ne sais pas comment faire.
j'arrive déjà à récupérer les noms des fichiers qui se trouvent dans un repertoire dasn un tableau. pour activer un fichier je mets à l'intérieur d'une boucle:
Windows(Tableau(i)).Activate
mais ca ne marche pas
pouvez vous m'aider s'il vous plait?
Je suis très débutante en VBAXL, et j'aimerais pouvoir exécuter une macro sur plusieurs fichiers .xls.
En fait, le but de mon programme est de pouvoir récupérer tous les fichiers execl qui se trouvent dans un répertoire et exécuter ma macro sur chacun de ces fichiers. mais je ne sais pas comment faire.
j'arrive déjà à récupérer les noms des fichiers qui se trouvent dans un repertoire dasn un tableau. pour activer un fichier je mets à l'intérieur d'une boucle:
Windows(Tableau(i)).Activate
mais ca ne marche pas
pouvez vous m'aider s'il vous plait?
Configuration: Windows 2000 Internet Explorer 6.0
2 réponses
-
Bonjour,
Exemple type :
Option Explicit ' Déclaration des constantes globale du module Const cteRepertoire = "C:\Documents Local\Excel\Application\" Const cteExcel = ".xls" ' Sub ParcoursDossier() Dim varFichier As Variant varFichier = Dir(cteRepertoire & "*" & cteExcel, vbDirectory) Do While varFichier <> "" If ((varFichier <> ".") And (varFichier <> "..")) Then If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then Call TraitementFichier(varFichier) End If End If varFichier = Dir Loop End Sub ' Function TraitementFichier(ByVal NomFichier As String) Dim Valeur As String Application.ScreenUpdating = False Application.Workbooks.Open cteRepertoire & NomFichier ' ... ' Soit vous lancer une macro dans le classeur 'ActiveWorkbook.RunAutoMacros "MaMacro" ' Soit vous traitez directement le fichier ActiveWorkbook.Sheets(1).Range("A1").Value = "Traité" ' ... ActiveWorkbook.Save Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True End Function '
Lupin -
il te faut faire un dir de tes fichiers, puis tu inseres un excel.exe (syntaxe inexacte mais c est l idee. si tu cales je te renseignerai + finement)
tu lances ta macro (je te conseille une auto_open qui se lance des l ouverture.
tu fais un close en sortie de macro et tu retournes dans ton dir.