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

Résolu
thorgall9 Messages postés 5 Statut Membre -  
thorgall9 Messages postés 5 Statut Membre -
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 !

2 réponses

  1. Pierre1310 Messages postés 8854 Statut Membre 652
     
    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
    1. thorgall9 Messages postés 5 Statut Membre
       
      Merci pour l'idée de l'utilisation "Intersect is nothing"
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. thorgall9 Messages postés 5 Statut Membre
       
      Top ! Merci;

      Oui , je vais agrémenter :-)
      0