Verrouiller une cellule après la saisie

Bonjour à tous,

Voici la question d'un lecteur :

"J'ai un tableau Excel protégé avec des cellules verrouillées et des cellules non verrouillées pour la saisie de plusieurs utilisateurs. Je voudrais que les cellules non verrouillées se verrouillent automatiquement après les saisies pour que les utilisateurs ne puissent plus les modifier, sauf moi."

Il existe probablement plusieurs solutions, mais en voici une possible en vidéo. Vous pouvez télécharger le fichier ici.

L'idée est de capturer l'événement Change de la feuille pour ensuite déprotéger la feuille, verrouiller la cellule, puis reprotéger la feuille.

Le code ajouté au clic droit sur la feuille est celui-ci :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("MontantsASaisir")) Is Nothing Then
        Me.Unprotect
        Target.Locked = True
        Me.Protect
    End If
End Sub

Et en vidéo :

A bientôt.

Gaetan

Pour marque-pages : Permaliens.

20 réponses à Verrouiller une cellule après la saisie

  1. Christian Gautier dit :

    Bonjour,

    un grand merci pour vos astuces.
    Néanmoins, la vidéo sur le verrouillage des cellules est inaudible, la musique de fond est trop forte.

    Merci à vous.

  2. Francis GAUTHIER dit :

    Je confirme : la musique est nuisible !

  3. JULE Gérard dit :

    Bonjour Gaëtan
    Comme disent Christian et Francis, la musique nuit à la compréhension du texte parlé!
    On arrive à peine à comprendre :c'est dommage.
    Un rectificatif ?
    Bonnes astuces à venir malgré tout

  4. Gaetan Mourmant dit :

    Merci à tous pour vos commentaires.
    Je vais poster un rectificatif sous peu.
    A bientôt
    Gaetan

  5. Gaetan Mourmant dit :

    Merci, c'est rectifié.
    Cordialement
    Gaetan

  6. JULE Gérard dit :

    Réactif Gaëtan
    C'est beaucoup mieux
    Merci pour nous
    Cordialement

  7. POGUET dit :

    Bonjour,
    OK mais c'est vraiment léger comme protection, il suffit à l'utilisateur de déprotéger manuellement la feuille pour faire une nouvelle saisie. Même avec un mot de passe si l'accès au vba n'est pas protégé ce mot de passe est accessible.

  8. Gaetan dit :

    Bonjour,
    Oui, c'est extrêmement léger, mais de toutes façons, sur Excel, il vaut mieux considérer que rien n'est sécurisé. Une recherche rapide sur internet permet de craquer les mots de passe en un rien de temps...
    L'idée est plutôt de faire en sorte que les utilisateurs ne puissent pas faire d'erreurs en revenant sur une saisie déjà faite.
    A bientôt.
    Gaetan

  9. POGUET dit :

    Re,

    Vu comme ça, OK

  10. Kuam dit :

    Bonjour Monsieur Mourmant,
    merci pour ce tuto c'est exactement ce que je cherchais car je dois partager un fichier excel pour un travail collaboratif. Quand je test en local tout fonctionne par contre quand je le met dans le sharepoint et que je teste la modification du fichier via Excel Online, ca ne marche plus. Est ce que c'est normal ?

  11. Cousineau dit :

    Bonjour,
    Cela fait longtemps que je cherchais à savoir cela,
    MERCI.
    Mais comment fait-on quand on a mis un mot code de protection?
    Merci pour votre réponse.

  12. Gaetan Mourmant dit :

    Bonjour Cousineau, je ne suis pas certain de bien comprendre, mais quelque chose comme ceci :
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("MontantsASaisir")) Is Nothing Then
    Me.Unprotect "MotDePasse"
    Target.Locked = True
    Me.Protect "MotDePasse"
    End If
    End Sub

  13. Gaetan Mourmant dit :

    PS : évidemment, il faut aussi protéger le code VBA pour que l'utilisateur ne puisse pas voir le mot de passe, sachant que la protection excel est de toute façon illusoire pour quelqu'un de déterminé, mais utile pour des utilisateurs bien intentionnés.

  14. Romain dit :

    Bonjour,

    Merci pour ce code très utile pour ce que je veux mettre en place dans mon fichier.
    Je voulais savoir s'il est possible de déprotéger/verrouiller/proteger uniquement à la fermeture ou enregistrement du classeur ?
    L'idée est que l'utilisateur puisse modifier la cellule qu'il a rempli (en cas d'erreur), tant qu'il n'a pas enregistré ou fermé le document.

    Merci
    Romain

  15. Charlène dit :

    Bonjour,
    Comme Romain je cherche à verrouiller les cellules uniquement à l'enregistrement du fichier.
    Mais je n'arrive pas à trouver la solution...
    Merci pour votre aide 🙂

  16. Alain dit :

    Bonjour,
    Ce tuto correspond parfaitement à un projet de fichier commun que je veux placer sur onedrive. J'ai bien compris la manipulation mais par contre dés que je ferme le fichier, les cellules ne se verrouille plus et je suis obligé de recommencer la manip. Sagit-il d'un problème de format d'enregistrement ou d'un bug? Merci de votre aide car je n'arrive pas à résoudre ce problème.
    Alain

  17. Gaetan dit :

    Bonjour Alain,
    C'est bizarre, vous pouvez m'nevoyer le fichier pour que je jette un oeil.
    Cordialement.

  18. Annie Morin dit :

    Bonjour, comment déverrouiller ce groupe de cellule afin de pouvoir changer les donner ?

  19. Gaetan dit :

    Vous pouvez le sélectionner, puis ensuite clic droit, format de cellule, protection et décocher "Verrouillé".

  20. Annie Morin dit :

    @Gaetan, j'ai essayé de les sélectionner et je ne peux même pas le faire. Toutes les options (en cliquant sur bouton droit de la souris) sont grisées. Même si j'ai ôté la protection de la feuille ça ne fonctionne pas. J'ai l'impression que c'est à cause du code VBA comme indiqué dans la vidéo. Ca fonctionne bien les cellules sont tellement verrouillées qu'il est impossible de tenter quoi que ce soit sauf qu'il faudrait que les personnes responsables du fichier puissent avoir un mot de passe dans le code VBA (exemple) qui leur permettent une modification des données dans ces cases. SVP si une personne a une solution pour moi ! Merci à tous !!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


La période de vérification reCAPTCHA a expiré. Veuillez recharger la page.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.