VBA - mise en protection d'une ligne sous condition.

Résolu/Fermé
thorgall9 Messages postés 5 Date d'inscription mardi 22 décembre 2015 Statut Membre Dernière intervention 22 décembre 2015 - 22 déc. 2015 à 11:45
thorgall9 Messages postés 5 Date d'inscription mardi 22 décembre 2015 Statut Membre Dernière intervention 22 décembre 2015 - 22 déc. 2015 à 13:27
Bonjour,

Je suis confronté à un petit soucis et ne voit pas comment le résoudre.
Ce que je souhaite obtenir :


Si le texte introduit dans une cellule de la colonne A (2 choix possible : Actif et Non actif) est "Non Actif", j'aimerais que les cellules de le colonne B à Z de la ligne concernée soient bloquées en écriture.

Si on modifie la valeur de la colonne A en Actif, on peut à nouveau écrire dans les cellules de la colonne B à Z



Grand merci pour l'aide !

A voir également:

2 réponses

Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
22 déc. 2015 à 11:49
Bonjour,

Je ne suis pas sur à 100% de ce que je vais te donner donc teste le avant.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("b1:b20")) Is Nothing Then Range("b1").Select

End Sub

Ce code n'autorise que les lignes b1 à b20 en écriture.

Si il marche comme je viens de te l'expliquer adapte le pour toi, a+
0
thorgall9 Messages postés 5 Date d'inscription mardi 22 décembre 2015 Statut Membre Dernière intervention 22 décembre 2015
22 déc. 2015 à 13:27
Merci pour l'idée de l'utilisation "Intersect is nothing"
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
22 déc. 2015 à 13:22
Bonjour

si en col A ="non actif"
en cliquant de col B-Z m^ ligne
on retourne en Col A

on pourrait agrémenter avec un msgbox mais....à toi de jouer
Option Explicit
'-----------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lig As Integer, Plage As Range
Lig = Target.Row
Set Plage = Range(Cells(Lig, "B"), Cells(Lig, "Z"))
If Not Intersect(Target, Plage) Is Nothing Then
If LCase(Cells(Lig, "A")) = "non actif" Then: Cells(Lig, "A").Select
End If
End Sub

0
thorgall9 Messages postés 5 Date d'inscription mardi 22 décembre 2015 Statut Membre Dernière intervention 22 décembre 2015
22 déc. 2015 à 13:27
Top ! Merci;

Oui , je vais agrémenter :-)
0