Protection de feuille lors de son activation, de sa consultation...

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,

Est-il possible de protéger une feuille Excel lors de sa consultation, de son activation ???

Explication pour être sûr d'avoir été clair... J'aimerais savoir si cela est possible par code VBA de mettre la protection d'une feuille Excel lorsque l'on sélectionne cette feuille. Par exemple je consulte une feuille disons ABC qui est protéger par un mot de passe, j'enlève ce mot de passe pour modifier quelque chose dans celle-ci, je change de page disons je vais sur DEF mais j'oublie de mettre le mot de passe sur la feuille ABC pour la protéger. J'aimerais remttre le mot de passe sur le feuille ABC soit en sortant de celle-ci ou encore lors de sa consultation à nouveau....

J'ai mis du code VBA qui protège les feuilles à l'ouverture du classeur, du fcihier, Excel dans la feuille ThisWorkbook mais j'aimerais pouvoir mettre par code VBA lors de la consultation de la feuille et/ou à la sortie de la feuille remettre ce mot de passe car il y a des gens qui oublie de remettre ce mot de passe, car les gens de on département connaissent le mot de passe s'ils veulent modifier quelque chose dans le fichier mais parfois ils oublient de remettre ce mot de passe lors de sa consultation.....


J'aimerais aussi que la possibilité de redimensionner les colonnes soient possible. Je sais qu'avec le code qui suit le redimensionnement des colonnes est possible.


Worksheets("Nom_de_la_feuille").Protect "TOTO", True, UserInterfaceOnly:=True



Gros Merci à l'avance

Bonne Année à tous.


Neo
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Protection de feuille lors de son activation, de sa consultation...

Bonsoir


La réponse est dans ta question ;)

Par exemple (à mettre dans le code de ThisWorkBook)
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim s As Worksheet
For Each s In Worksheets
s.Protect
Next s
End Sub
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Unprotect
End Sub

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sh.Protect
End Sub
 
Dernière édition:

CyberNeo99

XLDnaute Occasionnel
Re : Protection de feuille lors de son activation, de sa consultation...

Bonjour,

En fait je crois avoir fait une erreur le code

Worksheets("Nom_de_la_feuille").Protect "TOTO", True, UserInterfaceOnly:=True

Ne permet pas de redomensionner les colonnes ou ne permet pas de changer le format d'une celluel comme sa couleur.....

Si qqu connait le code ça serait très apprécier......

Le code plus haut mentionner, j'ai pris ce que j'avais besoin car il y a un code qui n'est pas utile celui que lorsque la feuille est active d'enlever la protection, le code suivant

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Unprotect
End Sub

Il enlève la protection lorsque la feuille est active si je ne me trompe pas......


Le code

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim s As Worksheet
For Each s In Worksheets
s.Protect
Next s
End Sub

Il mets la protection sur toutes les feuilles lorsqu'on ferme le classeur, le fichier Excel... si je ne me trompe...en fait si je comprend la logique car je ne suis pas programmeur....



Le code

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sh.Protect
End Sub

Est utile car lorsqu'il sort de la feuille il active la protection de la feuille, par contre j'aimerais qu'il puisse y avoir un mot de passe car avec ce code il n'y a pas de mot de passe... j'imagine que c'est

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sh.Protect Password:="TOTO"
End Sub

Et ainsi il y mets le mot de passe indiquer. Il me resterait à y greffé le code pour permettre de modifier la largeur des colonnes et de changer la couleur des cellules, bien sûr les cellules qui ne sont pas verrouillers......

Je joint un fichier, vous verrez qu'il y a du code qui a pour effet de demander le mot de passe lors de la consultation de la feuille 3 pour ainsi naviguer librement dans cette feuille et que ce code permet de ne demander le mot de passe qu'une seule fois. J'ai mis cela car je voulais être sûr que mettant le code VBA permettant que lorsqu'on quitte une feuille pour en consulter une autre le mot de passe soit mis sur cette dernière et que le fait qu'il y a du code pareil ne viennent pas interférer.


Gros Merci encore


Neo
 

Pièces jointes

  • Protection feuille active.xls
    29 KB · Affichages: 34

Staple1600

XLDnaute Barbatruc
Re : Protection de feuille lors de son activation, de sa consultation...

Bonsoir



Cette fois-ci la réponse est dans l'enregistreur de macros
(pour ce qui est de mettre un mot de passe*)

Sinon , effectivement tu as compris (cf les explications de ton précédent message) le code proposé dans le mien de précédent. ;)

* mais cela tu le sais déjà car
Code:
Worksheets("Nom_de_la_feuille").Protect "TOTO"

donc il te suffisait d'adapetr ma propostion pour ajouter un mot de passe (ici en l'occurrence TOTO )
 

Discussions similaires

Réponses
2
Affichages
392
Réponses
5
Affichages
658
Compte Supprimé 979
C

Statistiques des forums

Discussions
314 491
Messages
2 110 158
Membres
110 688
dernier inscrit
hufav