De toutes les feuilles, exploiter une macro située dans module
Le
JP

Bonjour,
J'utilise une macro pour proteger toutes les feuilles d'un classeur. Celle-=
ci est placée dans un module.
Est-il possible apres execution de la macro de revenir dans la feuille d'o=
ù elle a été lancée? Si oui, que faut-il ajouter à la macro qui l=
ance l'execution de Sub ProtegeFeuilles?
Voici la macro placée dans le module:
Sub ProtegeFeuilles()
For i = 1 To Sheets.Count
Worksheets(i).Activate
Sheets(i).Protect Password:="ctx"
With ActiveWindow
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
Next
End Sub
Merci pour votre aide
JP
J'utilise une macro pour proteger toutes les feuilles d'un classeur. Celle-=
ci est placée dans un module.
Est-il possible apres execution de la macro de revenir dans la feuille d'o=
ù elle a été lancée? Si oui, que faut-il ajouter à la macro qui l=
ance l'execution de Sub ProtegeFeuilles?
Voici la macro placée dans le module:
Sub ProtegeFeuilles()
For i = 1 To Sheets.Count
Worksheets(i).Activate
Sheets(i).Protect Password:="ctx"
With ActiveWindow
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
Next
End Sub
Merci pour votre aide
JP
En tête du module, mets :
Public Feuille As Worksheet
et dans le code appelant la macro :
Set Feuille = ActiveSheet
ProtegeFeuilles
Feuille.Activate
Cordialement.
Daniel
Pour protéger les feuilles, vous n'êtes pas obligé de les activer.
Par contre, et je ne comprend pas pourquoi, il semble que l'accès
à l'objet Window ne soit possible que si la fenêtre est active...
Option Explicit
Sub ProtegeFeuilles()
Dim S As Excel.Worksheet, CS As Excel.Worksheet
Set CS = ActiveSheet ' Sauve la feuille courante pour restauration
ThisWorkbook.Windows(1).DisplayWorkbookTabs = False
For Each S In ThisWorkbook.Worksheets
S.Protect Password:="ctx"
S.Activate
ActiveWindow.DisplayHeadings = False
Next S
CS.Activate ' Restauration de la fenêtre originale
End Sub
JP