Exécuter macro sur plusieurs fichiers excel

marie -  
 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?
Configuration: Windows 2000
Internet Explorer 6.0

2 réponses

  1. Utilisateur anonyme
     
    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
    5
    1. ambassadeur777
       
      Je me posais la même question que marie,cette réponse est très pertinente, merci Lupin
      0
  2. @¿@ Messages postés 48 Date d'inscription   Statut Membre 6
     
    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.
    1