Protéger toutes les feuilles de tous les classeurs ouverts

Résolu/Fermé
owm Messages postés 4 Date d'inscription jeudi 30 octobre 2014 Statut Membre Dernière intervention 19 juin 2015 - 18 juin 2015 à 14:04
owm Messages postés 4 Date d'inscription jeudi 30 octobre 2014 Statut Membre Dernière intervention 19 juin 2015 - 18 juin 2015 à 16:21
Bonjour,

Je souhaite protéger toutes les feuilles de tous les classeurs.La macro que j'ai réalisé ne fonctionne pas.Vous trouvez ci-dessous la macro:
Sub Protéger()
Dim Classeur As Workbook
Dim nombre As Integer

For Each Classeur In Workbooks
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect "d"
Next i
Next Classeur
End Sub
Je vous remercie par avance pour votre aide.

OWM

1 réponse

PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 18/06/2015 à 15:13
Bonjour,

A la base, la variable nombre est assigné sur le classeur actif.
Donc même si tu as 5 classeurs d'ouvert, nombre va toujours te retourner le nombre de feuille du même classeur.

Deuxième note : Worksheet(i).protect ne spécifie pas la feuille de quel classeur.
Donc excel va prendre le premier classeur, trouver le nombre de feuille, protèger les feuille de ce classeur, ensuite, prendre le second classeur, trouver le nombre de feuille, mais il va encore proteger les feuille du classeur actif et non pas celui du deuxième classeur. Il faut prendre excel par la main et bien lui spécifier tout ce qu'il doit faire.

Sub Protéger()
Dim Classeur As Workbook
Dim nombre As Integer

For Each Classeur In Workbooks
nombre = Classeur.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Classeur.Worksheets(i).Protect "d"
Next i
Next Classeur
End Sub 
0
owm Messages postés 4 Date d'inscription jeudi 30 octobre 2014 Statut Membre Dernière intervention 19 juin 2015
18 juin 2015 à 16:21
Je vous remercie.
0