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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #25447672
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
GL
Le #25448302
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
JP
Le #25448472
Merci à vous deux, c'est très bien.

JP
Publicité
Poster une réponse
Anonyme