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?
A voir également:
- Exécuter macro sur plusieurs fichiers excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Word et excel gratuit - Guide
2 réponses
Bonjour,
Exemple type :
Lupin
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
ambassadeur777
Je me posais la même question que marie,cette réponse est très pertinente, merci Lupin