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
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.
Je confirme : la musique est nuisible !
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
Merci à tous pour vos commentaires.
Je vais poster un rectificatif sous peu.
A bientôt
Gaetan
Merci, c'est rectifié.
Cordialement
Gaetan
Réactif Gaëtan
C'est beaucoup mieux
Merci pour nous
Cordialement
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.
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
Re,
Vu comme ça, OK
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 ?
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.
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
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.
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
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 🙂
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
Bonjour Alain,
C'est bizarre, vous pouvez m'nevoyer le fichier pour que je jette un oeil.
Cordialement.
Bonjour, comment déverrouiller ce groupe de cellule afin de pouvoir changer les donner ?
Vous pouvez le sélectionner, puis ensuite clic droit, format de cellule, protection et décocher "Verrouillé".
@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 !!