Verouiller une ligne quand une des cellules est "ok"

  • Initiateur de la discussion Initiateur de la discussion nat54
  • 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 !

nat54

XLDnaute Barbatruc
Bonjour,

Sur une feuille protégé, je laisse libre certaines cellules jaunes
je souhaiterai lorsque "ok" est saisi dans la cellule D2, la ligne 2 de la feuille active soit verrouillée

comment réaliser cela ?

merci d'avance

Nat

ps : la PJ est ultra simplifiée
 

Pièces jointes

Re : Verouiller une ligne quand une des cellules est "ok"

Bonjour nat54,

Essayez 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)
If Intersect(Target, Columns(4)) Is Nothing Then Exit Sub
Dim cel As Range
Unprotect '+éventuellement mot de passe
For Each cel In Intersect(Target, Columns(4), Me.UsedRange) 'en cas de sélection d'une plage
 If UCase(cel) = "OK" Then cel.EntireRow.Locked = True
Next
Protect '+éventuellement mot de passe
End Sub

A+
 
Re : Verouiller une ligne quand une des cellules est "ok"

Bonjour nat54

Voici une première proposition :

Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal selection As Range)
    
    
    If selection.Column = 4 Then 'réduction du test à la colonne
        If selection.Rows.Count = 1 And selection.Columns.Count = 1 Then
            If LCase(selection.Value) = "ok" Then
                 
                ActiveSheet.Unprotect
                Rows(selection.Row).Locked = True
                ActiveSheet.Protect
            Else
                'si l'on veut enlever la protection :
                'ActiveSheet.Unprotect
                'Rows(selection.Row).Locked = False
                'ActiveSheet.Protect
           
            
            End If
        End If
    End If
End Sub

Il reste des choses à améliorer, notament sur la selection de la cellule, où je verrais bien un test de de-sélection.

Olivier

EDIT : salut job75. Désolé du téléscopage, pas fait assez de refresh
 
Re : Verouiller une ligne quand une des cellules est "ok"

Bonjour nat54,

Essayez 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)
If Intersect(Target, Columns(4)) Is Nothing Then Exit Sub
Dim cel As Range
Unprotect '+éventuellement mot de passe
For Each cel In Intersect(Target, Columns(4), Me.UsedRange) 'en cas de sélection d'une plage
 If UCase(cel) = "OK" Then cel.EntireRow.Locked = True
Next
Protect '+éventuellement mot de passe
End Sub

A+
Bonjour

Ca marche très bien sur le fichier test
Je vais essayer sur le fichier réel
 
Re : Verouiller une ligne quand une des cellules est "ok"

Bonjour

Une façon de contourner le problème de la cellule fusionner :

Code:
If UCase(cel) = "FIN" Then Range(Cells(cel.Row, 2), Cells(cel.Row, 37)).Locked = True

Attention, si le 'fin' doit être vérouillé aussi, il faut mettre 38.

Cdt
Olivier
 
Re : Verouiller une ligne quand une des cellules est "ok"

Bonjour nat54,

En effet c'est dû aux cellules fusionnées, c'est facile à vérifier...

Alors pour verrouiller uniquement les cellules jaunes (colonnes S:AK) :

Code:
If UCase(cel) = "FIN" Then [COLOR="Red"]Intersect(cel.EntireRow, Columns("S:AK")).[/COLOR]Locked = True

Edit : salut Odesta, pas rafraîchi...

A+
 
Dernière édition:
Re : Verouiller une ligne quand une des cellules est "ok"

Bonjour nat54,

En effet c'est dû aux cellules fusionnées, c'est facile à vérifier...

Alors pour verrouiller uniquement les cellules jaunes (colonnes S:AK) :

Code:
If UCase(cel) = "FIN" Then [COLOR=red]Intersect(cel.EntireRow, Columns("S:AK")).[/COLOR]Locked = True

Edit : salut Odesta, pas rafraîchi...

A+

Nickel !

J'ai verrouillé toutes les cellules de la ligne y compris celle qui sert de verrou

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

Discussions similaires

Réponses
5
Affichages
265
Retour