Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
JP
Bonjour,

J'utilise une macro pour proteger toutes les feuilles d'un classeur. Celle-=
ci est plac=E9e dans un module.
Est-il possible apres execution de la macro de revenir dans la feuille d'o=
=F9 elle a =E9t=E9 lanc=E9e? Si oui, que faut-il ajouter =E0 la macro qui l=
ance l'execution de Sub ProtegeFeuilles?

Voici la macro plac=E9e dans le module:

Sub ProtegeFeuilles()
For i =3D 1 To Sheets.Count
Worksheets(i).Activate
Sheets(i).Protect Password:=3D"ctx"
With ActiveWindow
.DisplayHeadings =3D False
.DisplayWorkbookTabs =3D False
End With
Next
End Sub


Merci pour votre aide

JP

3 réponses

Avatar
DanielCo
Bonjour,
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

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 lance 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
Avatar
GL
Le 31/05/2013 07:20, JP a écrit :
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 lance 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




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
Avatar
JP
Merci à vous deux, c'est très bien.

JP