XL 2010 MACRO Protéger toutes les feuilles de plusieurs classeurs

nonoTT

XLDnaute Occasionnel
Bonjour le forum
Je cherche à mettre au point une macro qui me permettrai de protéger tous les classeurs sélectionnés par l'utilisateur dans un répertoire à choisir par l'utilisateur, puis pour ces fichiers protéger toutes les feuilles de ces classeurs.
J'ai déjà le code pour protéger l'ensemble des feuilles d'un classeur, par contre (mes connaissances des macros étant limitées) je n'arrive pas à mettre au point le reste de la macro me permettant de sélectionner les classeurs.

Code:
Sub Protection()
Dim wbMyWb As Workbook
Dim Nom_Fichier As Variant
Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , , , True)
If Nom_Fichier <> False Then
   Set wbMyWb = Workbooks.Open(Nom_Fichier)
  wbMyWb.Activate

code = InputBox("Saisissez ci dessous le code de verrouillage du classeur")
For i = 1 To Sheets.Count
Sheets(i).Protect Password:=code
Next i

End If

wbMyWb.Close

End Sub

Merci de votre aide.
Arnaud
 

Bougla972

XLDnaute Occasionnel
Bonjour nonoTT,

Peut-être comme ceci:
VB:
Sub Protection()
Dim wbMyWb As Workbook
Dim Nom_Fichier As String
Dim code As String
Dim i As Integer, j As Integer

Application.ScreenUpdating = False

With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = "C:" 'à adapter
    .Filters.Clear
    .Title = "Sélectionner un ou plusieurs fichiers"
    .Show
    If .SelectedItems.Count = 0 Then: Exit Sub
    For i = 1 To .SelectedItems.Count
        Nom_Fichier = .SelectedItems(i)
        Set wbMyWb = Workbooks.Open(Nom_Fichier)
        code = InputBox("Saisissez ci dessous le code de verrouillage du classeur")
        For j = 1 To wbMyWb.Sheets.Count
            wbMyWb.Sheets(j).Protect Password:=code
        Next j
        wbMyWb.Close (True)
    Next i
End With

Application.ScreenUpdating = True

End Sub
 

nonoTT

XLDnaute Occasionnel
Merci de ta réponse, ça marche
J'ai juste modifié le code de la manière suivante afin de n'avoir à saisir le code qu'une fois.
Encore merci
Code:
Sub Protection()
Dim wbMyWb As Workbook
Dim Nom_Fichier As String
Dim code As String
Dim i As Integer, j As Integer

Application.ScreenUpdating = False

With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = "C:" 'à adapter
    .Filters.Clear
    .Title = "Sélectionner un ou plusieurs fichiers"
    .Show
    If .SelectedItems.Count = 0 Then: Exit Sub
    code = InputBox("Saisissez ci dessous le code de verrouillage du classeur")
    For i = 1 To .SelectedItems.Count
        Nom_Fichier = .SelectedItems(i)
        Set wbMyWb = Workbooks.Open(Nom_Fichier)
        'code = InputBox("Saisissez ci dessous le code de verrouillage du classeur")
        For j = 1 To wbMyWb.Sheets.Count
            wbMyWb.Sheets(j).Protect Password:=code
        Next j
        wbMyWb.Close (True)
    Next i
End With

Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 627
Messages
2 111 303
Membres
111 094
dernier inscrit
MFrequence