Macro sur plusieurs fichiers
Bonjour à tous !
Je souhaiterais savoir comment on fait pour effectuer une macro sur plusieurs fichiers présents dans un dossier .
le dossier se situe à l'emplacement suivant :
C:\Users\Olivier\Desktop\Macro Frais KM
Je pense qu'une macro de ce type est assez simple, cependant, mes fichiers sont verrouillés il y a une macro pour déverrouiller avant de faire tourner le script. J'avais dans ma précédente macro appelé ces deux macros
et une ensuite pour vérouillerCall Dévérouiller
avec le mot de passeCall Vérouiller
Excel
Il y a également une variable pour déterminer l'année à modifier qui se trouve dans une macro également appelé
.Call remplacementannée
Comment faire pour appeler ses deux macros pour tous les fichiers ? merci d'avance pour votre aide
Sub FraisKMduneannéeàlautre()
'
Call Dévérouiller
' FraisKMduneannéeàlautre Macro
'
'Pour le mois de Janvier
Sheets("Janvier").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Février
Sheets("Février").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Mars
Sheets("Mars").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois d'Avril
Sheets("Avril").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Mai
Sheets("Mai").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Juin
Sheets("Juin").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Juillet
Sheets("Juillet").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois d'Août
Sheets("Août").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Septembre
Sheets("Septembre").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois d'Ocbobre
Sheets("Octobre").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Novembre
Sheets("Novembre").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
'Pour le mois de Décembre
Sheets("Décembre").Select
Range("F63").Select
Selection.ClearContents
Range("A5:D61").Select
Selection.ClearContents
Call remplacementannée
Call Vérouiller
End Sub
Sub Dévérouiller()
'
' Dévérouiller Macro
' Protection automatique de toutes les feuilles d'un classeur
mdp = InputBox("Veuillez entrer le mot de passe", "Enlever la protection des feuilles", "")
If (mdp = "Excel") Then
For i = 1 To Sheets.Count
Sheets(i).Unprotect mdp
Next i
Else: MsgBox ("Mauvais mot de passe.")
End If
End Sub
Sub Vérouiller()
'
' Vérouiller Macro
' Protection automatique de toutes les feuilles d'un classeur
mdp = InputBox("Veuillez entrer le mot de passe", "Enlever la protection des feuilles", "")
If (mdp = "Excel") Then
For i = 1 To Sheets.Count
Sheets(i).Protect mdp
Next i
Else: MsgBox ("Mauvais mot de passe.")
End If
End Sub
Bonjour
Je n'ai pas la vue de votre organisation de fichier mais un code à essayer qu'il faudra que mettiez dans un fichier pour qu'il ouvre les autres fichiers
Sub FraisKMduneannéeàlautre()
Dim chemin As String, fichier As String
Dim Feuille()
Dim i As Byte
chemin = "C:\Users\Olivier\Desktop\Macro Frais KM"
fichier = Dir(chemin & "\*")
Do While fichier <> ""
Application.ScreenUpdating = False 'Pour que l'écran ne soit pas mis à jour
Workbooks.Open (chemin & "\" & fichier)
Call dévérouiller
Feuille = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
For i = 0 To UBound(Feuille)
Feuille(i).Range("F63, A5:D61").ClearContents
Next i
Call remplacementannée
Call verouiller
fichier = Dir()
Loop
End Sub
Cordialement
Merci pour la réponse et pour le script cependant j'ai une erreur d'execution '424' Objet requis sur la ligne :
Feuille(i).Range("F63, A5:D61").ClearContents
Merci de ton aide
Bonjour
Je n'ai pas la vue de votre organisation de fichier mais un code à essayer qu'il faudra que mettiez dans un fichier pour qu'il ouvre les autres fichiers
Sub FraisKMduneannéeàlautre() Dim chemin As String, fichier As String Dim Feuille() Dim i As Byte chemin = "C:\Users\Olivier\Desktop\Macro Frais KM" fichier = Dir(chemin & "\*") Do While fichier <> "" Application.ScreenUpdating = False 'Pour que l'écran ne soit pas mis à jour Workbooks.Open (chemin & "\" & fichier) Call dévérouiller Feuille = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre") For i = 0 To UBound(Feuille) Feuille(i).Range("F63, A5:D61").ClearContents Next i Call remplacementannée Call verouiller fichier = Dir() Loop End Sub
Cordialement
Re
Oups désolé
Changez la ligne par ceci --> worksheets(Feuille(i)).Range("F63, A5:D61").ClearContents
cordialement