IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Verrouiller des celulles en fonction de la valeur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    février 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : février 2015
    Messages : 77
    Points : 54
    Points
    54
    Par défaut Verrouiller des celulles en fonction de la valeur d'une cellule
    Bonjour,

    Je souhaites verrouiller les cellules de plusieurs colonnes en fonction de la valeur des cellules de la colonnes "d".
    Par exemple, si d2=10 je verrouille a2,b2,f2,l2,etc... et si d3=15 je verrouille a3,b3, k3,p3,etc...
    J'ai essayé plusieurs choses mais je n'ai pas trouvé comment verrouiller les cellules correspondantes à la ligne de "d" donc j'ai verrouillé toute la colonne. Ensuite, il ne prend en compte que ma première ligne de verrouillage (avec N et P déverrouillé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     
        If Target.Count > 1 Then Exit Sub
        If Not Application.Intersect(Columns("D"), Target) Is Nothing Then
            ActiveSheet.Unprotect
            If Target = "10" Or Target = "25" Or Target = "40" Or Target >= "100" Then
                Range("A:A, B:B, F:F, J:J, K:K, L:L, O:O").Locked = True And Range("N:N,P:P").Locked = False
           Else
                    If Target = "5" Or Target = "15" Or Target = "20" Or Target = "30" Or Target = "35" Or Target = "45" Then
                        Range("A:A, B:B, F:F, N:N, K:K, P:P, O:O").Locked = True And Range("J:J, L:L").Locked = False
                    Else
                        Range("A:A, B:B, F:F, K:K, O:O").Locked = True And Range("N:N,P:P, J:J, L:L").Locked = False
                    End If
            End If
             ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        End If
    End Sub

  2. #2
    Membre expert
    Homme Profil pro
    retraité
    Inscrit en
    juin 2012
    Messages
    2 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : juin 2012
    Messages : 2 107
    Points : 3 529
    Points
    3 529
    Par défaut
    Bonjour,

    Pas vraiment saisi le problème, mais il faut cependant commencer par faire des lignes distinctes pour les .Locked:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Range("A:A, B:B, F:F, J:J, K:K, L:L, O:O").Locked = True
                Range("N:N,P:P").Locked = False
    Cordialement.

Discussions similaires

  1. Réponses: 14
    Dernier message: 26/03/2016, 09h58
  2. Copier coller des lignes en fonction de la valeurs d'une cellule
    Par Tyu38 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/09/2014, 09h38
  3. Imprimer des feuilles en fonction de la valeur d'une cellule
    Par jdeheul dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 22/03/2013, 13h47
  4. Réponses: 5
    Dernier message: 21/12/2011, 08h31
  5. [XL-2003] Seléctionner des feuilles en fonction de la valeur d'une cellule
    Par sylviobarca dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/04/2011, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo