Activer la protection apres chaque enregistrement

Bonjour,

Je voudrais savoir le code vba pour activer la protection excell apres chaque enregistrement.

Merci de votre aide

Voir le sujet :

Protection auto après fermeture

Excel-Pratique est une grande source qui m'a grandement servi, n'hésitez pas a surfer, le système de recherche est au top.

Merci mais jai pas trouvé

Merci je vais regarder

Mais si y a moyen d'avoir le meme apres chaque enregistrement se serait top

Bonjour à tous,

Il y a du choix ...

Avant la fermeture ...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    WsLock
End Sub

Avant l'enregistrement ...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    WsLock
End Sub

Après l'enregistrement ...

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    WsLock
End Sub

ric

Merci de ton aide ric,

Pour compléter ma demande initiale (les joies du novice), comment faire pour appliquer les options de protection (autorisation d'insérer ou supprimer des lignes par exemple).

Merci encore de ton intérêt

Bonjour,

Toukoul te donnait un lien :

https://forum.excel-pratique.com/viewtopic.php?p=873598#p873598

Lequel lien nous mène au fichier de chindou :

https://forum.excel-pratique.com/viewtopic.php?p=542866#p542866

Dans le fichier de chindou > au Module1 > il y a "deprotege" et "protege".

Dans chacune des ces maros > avant ou après (selon le cas) de l'appel "WsLock" > tu peux ajouter le code désiré ou, encore mieux, l'appel de macro exécutant les traitements désirés.

Exemple :

Sub deprotege()
WsLock 0
Call   " Ma macro à exécuter après la déprotection du document."
End Sub

'et pour protéger
Sub protege()
Call   '' Ma macro à exécuter avant de protéger le document."
WsLock
End Sub

ric

Super galérien,

Je comprends pas, j'ai collé la macro dans un autre fichier, et maintenant j'ai un message d'erreur suivant : "variable non définie" c'est "n" qui pose problème au débogage

et en prime je n'ai toujours pas compris comment intégré les options de protection…

voilà le niveau…

Bonjour,

Si tu as le message que n n'est pas défini, c'est que complètement au haut, tu as "Option Explicit" > ce qui est une excellente chose > ça oblige la déclaration de variables.

Ajoute >

Sub WsLock(Optional Y)
Dim PWd$
Dim n As Byte      ' << ajouter cette déclaration, elle sert au nombre de feuilles
PWd = "alano6"
...
...
...

Bonjour,

Est-ce que tu as bien étudié le fichier alano6.xlsm

Je te suggère de faire les exercices au haut de la page Cours VBA et Cours VBA avancé.

Cela va te donner de bonnes bases pour mieux comprendre le fonctionnement sur VBA.

ric

Merci Ric,

nickel pour la déclaration de la variable n.

Aurais tu encore l'amabilité de détailler le fait de mentionner les options les options d'autorisation de protection, car je n'ai pas su interpréter ton message précédent concernant ce point là (autoriser l'insertion et le suppression de ligne quand j'exécute le code).

merci de ton aide et ta patience

Bonjour,

Avec un peu d'explication ...

Option Explicit

'Protége ou déprotège toutes les feuilles
Sub WsLock(Optional Y)  ' Option Y est un paramètre optionnel
Dim PWd$                ' Pwd$ servira à stocker le mot de passe, $ veut dire que les caractères seront masqués sous ****
Dim N As Byte           ' décla N pour une valeur maximale de 254 (utilise Integer pour une valeur maximale de 32767)

    PWd = "alano6"                      ' alimente la variable PDd
    Application.ScreenUpdating = False  ' gèle temporairement l'affichage pour la rapidité d'exécution

    'Protége ou déprotège toutes les feuilles
    If IsMissing(Y) Then                ' si le paramètre optionnel est manquant
        For N = 1 To Worksheets.Count
            If Worksheets(N).Name <> "Feuil4" Then  ' feuille exclue à adapter
                Worksheets(N).Protect PWd           ' Protège la feuille avec le mot de passe stocké dans PWd
                [A1].Select                         ' sélectionne A1
            End If
        Next N                                      ' boucle sur la feuille suivante
    Else                                            ' si le paramètre optionnel n'est pas manquant
        For N = 1 To Worksheets.Count               ' débute boucle sur les feuilles
            If Worksheets(N).Name <> "Feuil4" Then  ' exclue la Feuil4
                Worksheets(N).Unprotect PWd         ' déprotège avec le mot de passe stocké dans PWd
                [A1].Select
            End If
        Next N                                      ' boucle sur la feuille suivante
    End If
    Application.ScreenUpdating = True               ' réactive l'affichage
End Sub

Sub deprotege()
WsLock 0            ' appel la macro WsLock avec le paramètre 0 afin déprotèger les feuilles
Call MonCodeApresDeprotection  '' appel de ma macro à exécuter après la déprotection du document."
End Sub

'et pour protéger
Sub protege()
Call MonCodeAvantDactiverLaProtection   '' appel de ma macro à exécuter avant de protéger le document."
WsLock              ' appel la macro WsLock SANS paramètre afin protèger les feuilles
End Sub

Sub MonCodeApresDeprotection()
'...     ' < ajouter le code < au besoin
'...
End Sub

Sub MonCodeAvantDactiverLaProtection()
'...     ' < ajouter le code < au besoin
'...
End Sub

ric

Merci camarade!

Rechercher des sujets similaires à "activer protection chaque enregistrement"