Protéger complètement un onglet
Bonjour tout le monde !
Si une âme charitable sait comment solutionner le problème suivant, je lui tire mon chapeau (à lire en entier !!) :
J'ai un classeur qui représente un petit bébé puisqu'il est un outil formidable pour mon boulot. Toutefois, je vais être amené occasionnellement à le partager avec des collègues pour qu'ils l'utilisent. Je n'ai cependant pas envie de masquer/verrouiller toutes les cellules contenant des formules car chacun doit pouvoir apporter des modifications suivant les cas particuliers de chacun...
J'ai donc, de manière à ce que personne ne se l'approprie complètement (quad même, c'est un sacré bébé !), crée un onglet de page d'accueil, qui indique par qui il a été développé, etc.
Mon problème réside dans la protection INTEGRALE de cet onglet, je m'explique :
- Toutes les cellules sont verrouillées par mot de passe (protection de feuille)
Une macro empêche la suppression de l'onglet (voir code en bas)
Un mot de passe protège l'accès aux macros (donc pas possible de supprimer le code)
Par contre, j'ai fait clique droit sur l'onglet, "déplacer ou copier l'onglet", et je l'ai déplacé dans une nouvelle feuille sans le copier. Résultat ma feuille "page de garde" est supprimée de mon bébé, qui devient donc orphelin...
Quelqu'un aurait-il une idée de la manière donc on peux protégé absolument un onglet, ou à défaut me proposer une autre solution? Merci d'avance
code macro :
Private Const FEUILLE_CODENAME As String = "Feuil9"
Private WithEvents CBBEvents As CommandBarButton
Private Sub CBBEvents_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
If Ctrl.ID = 847 Then
If ActiveSheet.CodeName = FEUILLE_CODENAME Then
CancelDefault = True
MsgBox "Impossible de supprimer la feuille " & ActiveSheet.Name
End If
End If
End Sub
Private Sub Workbook_Open()
Set CBBEvents = Application.CommandBars.FindControl(ID:=847)
End Sub
PS : inscrire sur tous les onglets "crée par ..." et verrouiller la cellule correspondante ne serait ni esthétique, ni pratique au vue du nombre d'information que j'ai mis sur la page de garde...
PS 2 : ah.. et puis : si à l'ouverture la personne n'active pas les macros (bandeau en haut de la feuille qui demande si il faut activer les macros) elle peut supprimer la feuille.... autre problème, est ce qu'il existe une macro qui, si elle n'est pas activée, empêche l'affichage d'un classeur, (comprendre que si elle est activée alors le classeur s'affiche)
Bon courage !! Moi je patauge !
Deux solutions simples:
- Protéger la structure du fichier.
- Tester à l'ouverture du fichier si la page existe, si elle n'existe pas la reconstruire (ajouter une page, mettre les trucs que tu veux dessus, la mettre au bon endroit et l'activer)
Par contre.. Ton bébé ne tiendra pas deux secondes face à un utilisateur avisé.. Puisqu'il est simple d'attaquer les mots de passe du code vba en bruit de force. Si tu mets un mot de passe de 100 caractères avec des majuscules minuscules, nombres et caractères spéciaux il tiendra peut être une journée.
Merci pour cette réponse pour le moins rapide
Je ne connaissais pas cette attaque en bruit de force, décidément.... C'est à se demander si on peut avoir confiance en notre mot de passe sur notre banque en ligne
Bon en tout cas merci, je ne pense pas tomber sur des utilisateurs avisés, mais je suis prévenu, je vais creuser du côté des deux solutions proposées.
Ta banque bloque l'accès au bout de 3 erreurs. VBA non. Donc oui on peut attaquer très facilement.