vérrouillage ligne après une entrée

  • Initiateur de la discussion Initiateur de la discussion elodiebulle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

elodiebulle

Guest
Bonjour à tous,

Après de nombreuses pertes de données suite a des fautes de frappe je souhaiterais vérouiller les lignes d'un fichier lorsque un mot spécifique est rentrée dans une cellule du tableau. C'est à dire aucune modification est possible sauf avec un mot de passe par exemple.

Par exemple lorsque l'on rentre une date de cloture l'Etat affiche clos et si'lon met une date de paiement l'etat affiche payé et clos.
Je souhaiterais vérouiller toute la ligne à partir du moment où l'on a payé et clos.

Je ne suis pas du tout familière avec VBA...

Merci d'avance pour votre aide.

Elodie
 

Pièces jointes

Re : vérrouillage ligne après une entrée

Bonsoir elodiebulle,

Voyez le fichier joint et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [G:H], Me.UsedRange)
If Not r Is Nothing Then
  For Each r In r.Rows 'si entrées multiples
    If Cells(r.Row, "F") = "Payé et Clos" Then
      Unprotect "toto" 'votre mot de passe
      r.EntireRow.Locked = True
      Protect "toto" 'votre mot de passe
    End If
  Next
End If
End Sub
Elle se déclenche quand on modifie le contenu des cellules en colonne G ou H.

A+
 

Pièces jointes

Re : vérrouillage ligne après une entrée

Bonjour elodiebulle, le forum,

L'inconvénient de la solution précédente c'est qu'une entrée erronée (ou manquante) ne peut plus être modifiée sans intervention de l'Administrateur.

On peut autoriser cette modification par un double-clic :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'---code précédent---
'---cellule jaune---
If Target(1).Interior.ColorIndex = 6 And Target(1) <> "" Then
  Unprotect "toto" 'votre mot de passe
  Target(1).Locked = True 'verrouillage
  Target(1).Interior.ColorIndex = xlNone 'pas de couleur
  Protect "toto" 'votre mot de passe
End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 1 And Target.Column <> 6 And Target.Locked Then
  Cancel = True
  Unprotect "toto" 'votre mot de passe
  Target.Locked = False 'déverrouillage
  Target.Interior.ColorIndex = 6 'jaune
  Protect "toto" 'votre mot de passe
End If
End Sub
A vous de voir l'intérêt de cette solution.

Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : vérrouillage ligne après une entrée

C'est très bien que l'on ne puisse pas modifier sans l'accord de l'administrateur sinon c'est une ouverture à beaucoup de choses.
En revanche je n'arrive pas à faire fonctionner le code dans d'autres fichiers.
J'ai fait un copier-coller du code mais je ne pense pas que ce soit la bonne solution
Quelle est la procédure à effectuer?

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
  • Question Question
2 3 4
Réponses
48
Affichages
7 K
L
Réponses
2
Affichages
976
LAMYRAL
L
L
Réponses
5
Affichages
1 K
L
S
Réponses
0
Affichages
3 K
suzette69
S
J
Réponses
4
Affichages
2 K
J
Retour