Protection déprotection feuille sans fenetre demandant le code

  • Initiateur de la discussion Initiateur de la discussion altinea
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

altinea

XLDnaute Accro
Bonsoir, j'ai récupéré cette macro sur le forum JCGL, en était le concepteur il me semble,
cette macro me conviens le seul hic, est en fait que je ne souhaiterai aps voir apparaitre la fenêtre permettant de mettre le mdp.

En effet j'utilise via un userform, qui va mettre des infos dans une feuille, le but étant que cela soit transparent pour l'utilisateur. UNe fois l'info validée via chekbox, celle ci s'incrit ans une feuille protégée.
Dans le code de l'user, j'ai mis unprotect et protect, afin de déverouiller la feuille et y inscrire les infos.Puis reprotéger la feuille.
Avec le code de JCGL, j'ai une fenetre qui demande le code, donc plus d'intéret de verrouiller la feuille.
Ma demande est il possible de déprotéger le feuille et de la reprotéger sans cette fenetre afin que cela soit invisible a l'utilisateur,

Private Sub TB1_Click()
Dim Feuil As Worksheet

With Application
.ScreenUpdating = 0
.Calculation = xlCalculationManual
End With

For Each Feuil In Worksheets
If TB1 = False Then
TB1.Caption = "Déprotéger les feuilles"
TB1.BackColor = &HC0E0FF
Feuil.Protect "6319"
End If
If TB1 = True Then
TB1.Caption = "Protéger les feuilles"
TB1.BackColor = &HC0FFC0
Feuil.Unprotect "6319"
End If
Next Feuil

With Application
.ScreenUpdating = 1
.Calculation = xlCalculationAutomatic
End With

End Sub



Merci pour votre aide
 
Re : Protection déprotection feuille sans fenetre demandant le code

re, une idée, mais je ne sias pas faire, en reprennant le principe, d'ouvrir une boite deamndant le mdp, est il possible d'aler chercher dans une cellule ou un coi de code le mdp afin de déverouiller et verrouiller les feuilles afin q'une fois l'info inscrite dans la feuille de destination la protection soit acitivée? merci encore
 
Re : Protection déprotection feuille sans fenetre demandant le code

Bonjour,

peite info au passage, pour qu'un code puisse s'exécuter sur une feuille protégée sans avoir à la déprotéger, il faut que la protection soit effectuée par le code en utilisant l'argument "userinterfaceonly", code ci-dessous à plcer dans le module "thisworkbook", s'exécute à l'ouvverture du classeur :
Code:
Option Explicit
Private Sub Workbook_Open()
Feuil1.Protect "toto", userinterfaceonly:=True
End Sub
bonne journée
@+
 
Re : Protection déprotection feuille sans fenetre demandant le code

Merci Pierrot, tu veuxdire que si je met ce code dans thsiworkbook, il n'est pas necessaire de mettre l'autre code, et cela me pemettrai de pouvoir ecrire sur une feuille protégée?
 
Re : Protection déprotection feuille sans fenetre demandant le code

Re,

Merci Pierrot, tu veuxdire que si je met ce code dans thsiworkbook, il n'est pas necessaire de mettre l'autre code, et cela me pemettrai de pouvoir ecrire sur une feuille protégée?

A priori, oui... si j'ai bien compris... enfin, c'est le code qui pourra écrire sur feuille protégée....
 
Re : Protection déprotection feuille sans fenetre demandant le code

Merci Pierrot cela fonctionne, est ce qu'avec le meme code on peut protéger un nombre plus important de feuilles dans le même classeur, hormis de répeter la ligne de commande en changeant le nom de la feuille, merci
 
Re : Protection déprotection feuille sans fenetre demandant le code

re bonsoir,

j'ai trouvé ce code le seul élément qui bug est la définition de la variable, je l'ai définie AS interger, mais cela ne doit pas être la bonne définition

Private Sub Workbook_Open()
Dim k As interger
For k = 1 To Worksheets.Count

Worksheets(k).Select
'choix du mot de passe mdp
Worksheets(k).Protect Password:="mdp", userinterfaceonly:=True

Next k

Merci
 
Re : Protection déprotection feuille sans fenetre demandant le code

Re, merci Victor, ma question, peu etre pas claire, certes, je veux juste savoir si comme tu me la proposé, le même code peu etre compilé afin de protéger un nombre plus important de feuilles, ce que m'a proposé Pierrot93 me convient absolument, et je l'en remercie tout comme

Option UserInterfaceOnly

Lorsque vous verrouillez les cellules d'une feuille de calcul , que la protection s'applique aux opérations VBA ainsi que les actions de l'utilisateur . Si votre code VBA tente de modifier une cellule verrouillée , vous obtiendrez une erreur d'exécution 1004 . Une façon de contourner cela est de déprotéger la feuille avant les courses VBA pertinentes et reprotect après la VBA est terminée . C'est en quelque sorte une solution malpropre . Le meilleur moyen est d'utiliser le drapeau UserInterfaceOnly lorsque vous protégez la feuille via VBA . Vous pouvez spécifier UserInterfaceOnly uniquement dans le code VBA . Il n'y a aucun élément de l'interface utilisateur ( barre de commande , menu, etc ) pour cette option , vous devez utiliser VBA . Lorsque vous protégez une feuille avec UserInterfaceOnly , la protection est appliquée aux actions des utilisateurs ( essentiellement , clavier et opérations de souris ) , mais VBA est libre de modifier la feuille de calcul comme s'il n'y avait pas de protection . Le réglage UserInterfaceOnly n'est pas enregistrée lorsque vous fermez le classeur , vous devez définir lorsque le classeur est ouvert . Le meilleur endroit pour le faire est dans la procédure d'événement Workbook_Open . Par exemple,
Private Sub Workbook_Open ( )
. Me.Worksheets ( " Sheet1" ) Protect UserInterfaceOnly : = True
. Me.Worksheets ( " Sheet2 " ) Protect UserInterfaceOnly : = True
. Me.Worksheets ( " Sheet3 " ) Protect UserInterfaceOnly : = True
End Sub

Ce code doit être placé dans le module de code ThisWorkbook de projet VBA du classeur

jusque là j'avais compris, l'idée était de en pas reproduire des lignes de code par exemple s'il y a 50 feuilles.

Merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
K
Réponses
8
Affichages
2 K
kuistau
K
R
Réponses
0
Affichages
919
raniou010
R
Réponses
7
Affichages
1 K
Réponses
18
Affichages
4 K
G
Retour