Exécuter une macro au début de chaque macro

H

Hady

Guest
Bonjour!

j'ai un nouveau petit soucis. J'ai toujours mon classeur avec ma trentaine de macros. Je voudrais savoir si il existe un méthode comme Workbook_BeforeSave pour éxécuter une macro avant chaque macro.
En fait je voudrais avant chaque macro une commande :
ActiveWorkbook.UnProtect
Et à la fin de chaque macro une commande :
ActiveWorkbook.Protect
Y-a-t-il une procédure qui pourrait me le permettre de la faire sans copier coller ces 2 commandes au début et à la fin de chacune de mes macros?

Merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Hady, bonsoir le Forum,

J'ai pas ce que tu veux mais j'ai mieux (au passage je remercie Didier...). Il s'agit d'une protection de la feuille uniquement sur les actions manuelles faites par les utilisateurs mais laissant agir les macros. Donc, si je tape 20 dans la cellule A1 je déclenche le fameux message «Cette feuille est protégée... blablabla». Mais si, via VBA un code dit Range('A1').Value = 20, alors là aucun problème. Je pense que ça va résoudre tous tes soucis.

Il est fortement conseilé de protéger tes feuilles à l'ouverture du classeur (voir remarque de l'aide VBA plus bas). Regarde le code ci-dessous qui protège les onglets Feuil1, Feuil2 et Feuil3 :

Private Sub Workbook_Open()
Sheets('Feuil1').Protect UserInterfaceOnly:=True
Sheets('Feuil2').Protect UserInterfaceOnly:=True
Sheets('Feuil3').Protect UserInterfaceOnly:=True
End Sub

Remarque

Si vous appliquez la méthode Protect et que l'argument UserInterfaceOnly a la valeur True dans une feuille de calcul et que vous enregistrez le classeur, l'intégralité du classeur (et pas uniquement l'interface) sera protégée lors de la réouverture du classeur. Pour déprotéger la feuille de calcul mais activer à nouveau la protection de l'interface utilisateur après l'ouverture du classeur, vous devez à nouveau appliquer la méthode Protect avec l'argument UserInterfaceOnly affecté de la valeur True.


P.S. par contre, j'ai eu la mauvaise surprise de perdre la protection sur l'utilisateur après un Tri en VBA. Il m'a fallu rajouter dans le code après ce tri : Sheets('ma_feuille').Protect UserInterfaceOnly:=True
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Robert, abel, Didier, Hady

Tout tout tout vous aurez tout sur le ............

..........UserInterfaceOnly

ICI : Lien supprimé voir mon post du 29-01-03 00:09

Grace aux deux compères Frédérique Sigonneau, et le grand Chef à trois plumes, Laurent Longre....

Bonne Journée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS