Verrouillage cellule après saisi VBA
Fermé
Padaoine59
Messages postés
6
Date d'inscription
jeudi 25 mars 2021
Statut
Membre
Dernière intervention
10 avril 2021
-
10 avril 2021 à 10:26
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 11 avril 2021 à 12:37
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 11 avril 2021 à 12:37
A voir également:
- Verrouillage cellule après saisi VBA
- Code de verrouillage oublié - Guide
- Verrouillage clavier - Guide
- Excel compter cellule couleur sans vba - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
3 réponses
Utilisateur anonyme
10 avril 2021 à 11:59
10 avril 2021 à 11:59
Bonjour,
Le problème vient justement de la Sub Worksheet_Change(ByVal Target As Range) :
au lancement de l'enregistrement, la protection des feuilles est bien enlevée mais en parallèle dès qu'il y a un changement dans le classeur la protection est remise à la fin du _Change.
A priori, il suffit de laisser la macro d'enregistrement gérer les protections en entrée (ôter) puis en sortie (remettre) comme déjà fait pour que ça fonctionne.
Il faut donc supprimer Sub Worksheet_Change(ByVal Target As Range) et la remplacer par une procédure qui s'assure que les protections sont bien mises à l'ouverture du classeur par exemple.
Le problème vient justement de la Sub Worksheet_Change(ByVal Target As Range) :
au lancement de l'enregistrement, la protection des feuilles est bien enlevée mais en parallèle dès qu'il y a un changement dans le classeur la protection est remise à la fin du _Change.
A priori, il suffit de laisser la macro d'enregistrement gérer les protections en entrée (ôter) puis en sortie (remettre) comme déjà fait pour que ça fonctionne.
Il faut donc supprimer Sub Worksheet_Change(ByVal Target As Range) et la remplacer par une procédure qui s'assure que les protections sont bien mises à l'ouverture du classeur par exemple.
Utilisateur anonyme
Modifié le 10 avril 2021 à 13:16
Modifié le 10 avril 2021 à 13:16
PS : je me rends compte que ma réponse précédente ne correspond pas à tous les besoins !
Pour pouvoir saisir dans la plage voulue sans tout chambouler, il faut écrire la sub ainsi
Pour pouvoir saisir dans la plage voulue sans tout chambouler, il faut écrire la sub ainsi
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("R2:X2")) Is Nothing Then 'On teste si on est bien dans la plage "R2:X2" ActiveSheet.Unprotect "Julien67*" Target.Locked = False ActiveSheet.Protect "Julien67*" End If End Sub
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
11 avril 2021 à 12:37
11 avril 2021 à 12:37
Bonjour à tous,
insère cette ligne dans "enregistrement formulaire" :
remet à True en fin de macro
eric
insère cette ligne dans "enregistrement formulaire" :
Rows("2:2").Select
Application.EnableEvents = False
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
remet à True en fin de macro
eric