Bonjour à toutes et tous,
J'ouvre une nouvelle discussion pour savoir si il est possible d'empêcher l'accès à la fonction "Ôter la protection de la feuille" qui se trouve dans le bandeau Excel ?
Merci par avance pour vous réponses
Amicalement
René
Bonjour à toutes et tous,
J'ouvre une nouvelle discussion pour savoir si il est possible d'empêcher l'accès à la fonction "Ôter la protection de la feuille" qui se trouve dans le bandeau Excel ?
Merci par avance pour vous réponses
Amicalement
René
certainement en bloquant le bouton dans la commandbars
si il faut faire un unprotect pour pouvoir le faire alors sela devra etre fait en xml pas le choix
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour Patrick,
Merci pour ta réponse. Je vais essayer de trouver la méthode.
Amicalement
René
On peut aussi envisager le fait de masquer la barre de commande, non ?
masquer je ne sais pas si c'est possible sur les commandbars builtdin en vba
je viens de tester pour toi et c'est bien ce que je pensais XML customui pas le choix
le id de ce bouton c'est 893
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour
Le raccourci ALT + O + E + F --->> et la protection (siu pas de mot de passe) de la feuille est ôtée.
Et donc ? protéger avec mot de passe (qui sera violé en environ 40 secondes par tout petit malin)
Salut.
+1 avec Jacques.
Vouloir protéger un classeur Excel est utopique.
Masquer le bouton pour que personne n'y touche l'est tout autant.
Protéger par mot de passe ne protège rien du tout, sauf contre la manoeuvre involontaire, auquel cas laisser Excel en l'état en protégeant la feuille "protège" tout aussi bien.
La raison voudrait que l'on utilise Excel pour ce qu'il est => et donc, pas besoin de protection autre qu'une protection de la feuille sans mot de passe. Il serait plus intéressant et moins fastidieux de former les utilisateurs de ton classeur et de les responsabiliser par rapport à l'utilisation qu'ils en font.
Pourquoi veux-tu masquer ce bouton?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour Pierre
D'autant que :
1) s'il ne s'agit que d'éviter un geste accidentel, il suffit de ceci, qui remettra automatiquement la protection à chaque entrée dans une cellule :
Reste que l'utilisateur peut toujours entrer dans une cellule -->> modifier la protection --->> modifier le contenu de la cellule puisque, déjà dedans, l'évènement selectionchange n'intervient alors pas encore.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not ActiveSheet.ProtectContents Then ActiveSheet.Protect End Sub
Mais ce ne saurait dans ce cas qu'être vraiment intentionnel et non accidentel
2) s'il s'agit par contre d'empêcher un acte intentionnel, nous n'avons plus affaire à un benêt, mais à un utilisateur malveillant -->> et celui-ci sait en général faire sauter très facilement ce genre de protection
Bonjour à tous,
Merci pour vos réponses.
Je souhaite simplement protéger les feuilles pour éviter tout effacement accidentel des formules de calcul et également afin que l'utilisateur ne saisisse que les zones indispensables.
Donc certaines cellules sont verrouillées et d'autres non.
Certaines macros ne peuvent fonctionnées si il y a un mot de passe. Donc, j'ai prévu de déverrouiller et de re-verrouiller la feuille.
Tu as donc la solution 1 de mon message précédent qui protège ce ce genre d'accident, sauf si (mais ce ne serait alors plus "accidentel") l'utilisateur fait plusieurs gestes successifs avant nouvelle sélection.Je souhaite simplement protéger les feuilles pour éviter tout effacement accidentel des formules de calcul et également afin que l'utilisateur ne saisisse que les zones indispensables.
Donc certaines cellules sont verrouillées et d'autres non.
sans compter qu'il est très facile de rétablir systématiquement une formule, ainsi :
Voilà tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private maformule As String Private Sub Worksheet_Change(ByVal Target As Range) If maformule <> "" Then Target.Formula = maformule End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.HasFormula Then maformule = Target.Formula Else maformule = "" End Sub
Merci unparia pour tes bons conseils.
Mais je vais clore cette discussion car elle déborde sur celle-ci déjà ouverte
https://www.developpez.net/forums/d1...changer-passe/
Ce sont deux discussions distinctes.
Quant à la présente (protéger tes formules) : regarde ce que ferait, sans aucune protection nécessaire, ce tout petit mécanisme que je viens de m'amuser à mettre en place
Même pas besoin de protéger ta feuille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static ou As Range If ou Is Nothing Then Set ou = UsedRange.SpecialCells(xlCellTypeConstants) If Target.HasFormula Then MsgBox "on ne touche pas aux formules" ou.Select Else Set ou = Target End If End Sub
Je ne pensais pas que cela soit possible.
Merci beaucoup pour le tuyau, cela va beaucoup m'aider.
dans le meme style
mettre un label transparent sans texte de caption recouvrant la plage qui ne doit pas etre touchée
quand tu cherche a cliquer sur une de ces cellules il devient blanc (regler ne pas deplacer l'object et ne pas imprimer)
sans code !!!
![]()
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Des solutions faciles auxquelles je n'avais pas pensé et même imaginées
et avec un code
au cas ou un petit malin aurait trouvé moyen de modifier tes cellules
dans l'evenement change (pas selection change je dis bien change !!!)
fermer brutalement le classeur sans enregistrer avec un message avertissant l'utilisateur msgbox "c'est pas aujourd'hui petit malin je ferme et tu devra tout recommencer hihihi"
et rendre la chose plus compliqué je melange le code
c'est a dire au lieu de faire toute mes actions dans l'evenement requis certaine variable sont dans d'autres subs
ce qui fait que si l'utilisateur averti irais shunter les lignes de code de l'evenement
soit les autres sub manque les valeurs au quel cas "crash"
soit si il trouve les valeur et les shunte l'evenement "crash"
ca reste quand meme possible mais pour les utilisateur avertis qui sauraient comment chercher
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
protège la feuille mais permet au code VBA de la modifier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part feuil1.Protect userinterfaceonly:=true
Pour protéger les formules sans protéger le classeur, tu peux placer une validation sur tes cellules formulées (Données > Outils de Données > Validation des données) puis tu choisis Personnalisé et tu saisis la formule =FAUX.
Il sera alors impossible de saisir quelque chose dans les cellules qui ont cette validation. Bien entendu, il sera toujours possible de copier-coller, de supprimer...
Question bête: La protection "sans mot de passe", voire avec, ne te suffit pas (surtout si tu utilises le code renseigné en début de message pour protéger...)?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Connaissant les utilisateurs, je dois absolument protéger le document.
Il y a par exemple un numéro incrémenté, il ne faut pas qu'ils puissent y aller pour le modifier.
C'est malheureux, mais je suis obligé de penser à ce qu'ils pourraient faire, imaginer le pire !
Tu peux alors (s'ils sont vraiment si débrouillards) mettre ce rêve aux oubliettes, y compris si tu mets toutes les protections Excel possibles et imaginables. Elles seront ôtées facilement, les données remplacées carrément en mode création, puis tout sera remis en place dans l'état antérieur et sans carte de visite !Connaissant les utilisateurs, je dois absolument protéger le document.
C'est malheureux, mais je suis obligé de penser à ce qu'ils pourraient faire, imaginer le pire !
Et s'ils ne sont pas eux-mêmes débrouillards, ils trouveront autour d'eux un bon lot de copains débrouillards... en moins de deux.
Partager