Protection par code

Bonjour

Je viens demandé une fois de plus un peu d'aide pour affiner un code me servant à protéger un fichier. Je souhaite grace à ce code protéger le maximum d'éléments comme des cellules vérouillées, des images, ect.. mais sur tout des formules, comme ça il me reste accessible que les cellules dévérouillées, des boutons afin déviter toutes erreurs.

Après recherche sur le forum, j'ai bien trouvé des exemples de code comme je le souhaite mais le message d'alerte de protection s'affiche alors que c'est justement ça que je ne veux pas.

dans un module j'ai mis cela:

Public PWD As String

Sub Protect()

    ActiveSheet.Protect Password:=PWD, DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True

End Sub

puis dans la feuil concerné j'ai mis cela:

Private Sub Worksheet_Activate() 'Protège la feuille

    Call Protect

End Sub

que serait la solution pour ne plus avoir le message d'alerte de protection? Merci

au plaisir de vous lire

Cordialement.

Bonsoir pompaero le forum

tu rajoutes

application.displayalert=0 et à la fin application.displayalert=1

a+

papou

bonjour paritec

Merci d'avoir pris le temps de lire et répondre à mon post.

Je rajoutes ou tes propositions, dans le module ou la feuil stp ?

Cordialement

Re Bonjour Pompaero le forum

excuses le pensais que tu allais comprendre, mais en plus j'avais oublié un "s" alerts !!!!!

de plus Pompaero, il ne fait pas faire des erreurs grossières du style utiliser des noms réservé à excel du style "Protect"

"Unprotect" "name" etc.. tu donnes à ta macro le nom que tu veux mais pas un nom réservé

(Enfin je dis erreurs grossière mais moi aussi il y a quelques année j'avais fait une erreur de ce style et j'ai cherché deux jours alors je n'ai plus jamais oublié)

Voilà tes deux macros , par contre tu mets le mot de passes en variable OK mais tu ne l'as pas défini donc cela ne marchera pas

préfère toujours mettre directement le mot de passe directement du style password:= "zaza" un string toujours entre guillemet.

a+

Papou

 Private Sub Worksheet_Activate() 'Protège la feuille       
        Call Pompaero           
    End Sub
Sub Pompaero()
Application.DisplayAlerts=0
    ActiveSheet.Protect Password:=PWD, DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
Application.DisplayAlerts=1
End Sub

Re

Merci pour tes conseils que je viens de mettre en application mais malheureusement j'ai toujours le message d'alerte quand je doubleclick sur une cellule vérrouillé.

En l'occurrence ça marche comme je le souhaite sur les images sur ma feuil, c'est à dire quand je passe sur l'image avec ma souris, ma flèche reste telle quelle ou si je doubleclick rien ne se passe. C'est ce que je voudrai avec les cellules vérouillées.

Pour reprendre à la base, dans mon tableau j'ai dévérouillé les cellules ou seulement il y a besoin d'écrire, ensuite j'ai créé le code actuel sur lequel je flanche, mais :

quand je click une cellule protégé celle-ci est sélectionné alors que je ne veux pas

quand je doubleclick une cellule protégé celle-ci m'ouvre le message "La cellule ou le graphique est protégé et est en lecture seule. Pour modifier une cellule ect...." alors que je ne veux pas.

En simple je voudrais que ma souris reste normal sur ma feuil protégé et si je click ou doubleclick sur les parties protégé rien ne se passe sauf pour les cellules dévérouillées biensur.

Merci pour l'aide, au plaisir de vous lire.

Cordialement

Bonjour,

tu peux empêcher la sélection des cellules verrouillées avec :

ActiveSheet.EnableSelection = xlUnlockedCells

eric

bonjour eriiic

Merci d'avoir répondu à mon post. Je viens d'essayer ta proposition pour la sélection des cellules, impec ça marche comme je voulais il me reste plus qu'à éviter le message d'alerte quand je doubleclick sur une cellule vérouillé.

J'ai mis ton code dans le code de la feuil, c'est bien ça ?

au plaisir de te lire

Cordialement

Re,

J'ai mis ton code dans le code de la feuil, c'est bien ça ?

Oui, après ton .Protect

il me reste plus qu'à éviter le message d'alerte quand je doubleclick sur une cellule vérouillé.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Locked Then Cancel = True
End Sub

eric

bonjour eriiic

excuse de la réponse tardive.

Je voulais a te remercier pour tes propositions qui marche super bien comme je voulais.

Cordialement

Rechercher des sujets similaires à "protection code"