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 :

verouiller des cellules apres saisie d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut verouiller des cellules apres saisie d'une cellule
    Bonsoir

    Je m'en remet à vous car je sèche voici le code que j'ai écris,
    je veut que lorsque je saisie une valeur dans la colonne A22 alors B22 et E22:AQ22 soient protéger
    et lorsque je saisie une valeur dans la colonne C22 alors D22 et AR22:AV22 soient protéger
    et ainsi de suite pour A23,A24... et C23,C24...

    voici le code que j'ai écris , je ne parviens pas à trouver mon erreur




    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
     
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    With Target
     
    If Application.Intersect(Target, Range("A22:A1004, C22:C1004")) Is Nothing Then Exit Sub
    If .Count > 1 Then Exit Sub
     
    Application.EnableEvents = False
     
    If .Value = "" Then .Offset(, 1).Value = "" Else .Offset(, 1) = Date
     
    .EntireRow.Locked = False 'déverrouille toute la ligne
     
    'verrouille en fonction
    If .Column = 1 Then Union(.Offset(, 1), Range(.Offset(, 4), .Offset(, 42))).Locked = Target.Value <> "" 'si colonne A
    If .Column = 3 Then Union(.Offset(, 1), Range(.Offset(, 41), .Offset(, 45))).Locked = Target.Value <> "" 'si colonne C
     
    Application.EnableEvents = True
     
    End With
     
    End Sub

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Initialement il faudra déverrouiller toutes les cellules.
    La feuille étant protégée sans mot de passe dans l'exemple ci-dessous:
    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
    18
    19
    20
    21
    22
    23
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Application.Intersect(Target, Range("A22:A1004, C22:C1004")) Is Nothing Then Exit Sub
    With Target
        If .Count > 1 Then Exit Sub
        .Worksheet.Unprotect
        .EntireRow.Locked = False    'déverrouille toute la ligne
     
        Application.EnableEvents = False
        If .Value = "" Then
            .Offset(, 1).Value = ""
        Else
            .Offset(, 1) = Date
            If .Column = 1 Then
                Union(.Offset(, 1), Range(.Offset(, 4), .Offset(, 42))).Locked = Target.Value <> ""    'si colonne A
            ElseIf .Column = 3 Then
                Union(.Offset(, 1), Range(.Offset(, 41), .Offset(, 45))).Locked = Target.Value <> ""    'si colonne C
            End If
        End If
        Application.EnableEvents = True
        .Worksheet.Protect
    End With
    End Sub

Discussions similaires

  1. Réponses: 20
    Dernier message: 24/02/2018, 23h39
  2. [XL-2010] Comment activer une cellule après avoir copié une image ?
    Par ESVBA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2016, 23h36
  3. Modifier la couleur de la cellule après avoir choisi une cellule
    Par forum dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/03/2011, 19h42
  4. MSGbox apres saisie dans une cellule
    Par VELO1222 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/02/2011, 20h09
  5. Comment effacer des cellule après modification d'une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/03/2009, 08h51

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