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

Call Dévérouiller

et une ensuite pour vérouiller

Call Vérouiller

avec le mot de passe
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

Re

Oups désolé

Changez la ligne par ceci --> worksheets(Feuille(i)).Range("F63, A5:D61").ClearContents

cordialement

Excellent ! la Macro fonctionne nickel et j'ai compris le raisonnement merci beaucoup !!!

Rechercher des sujets similaires à "macro fichiers"