Automatisation d'un verrouillage ou déverrouillage de cellule sous Excel

Anonyme
2022-02-02T08:30:15+00:00

Bonjour,

J'ai créé un tableau Excel pour me permettre de suivre l'avancement d'un chantier de rénovation d'une centaine de logements. Pour chaque logement j'ai créé une liste déroulante permettant d'affecter le statut "TERMINÉ", "EN COURS", ou "NON RÉALISÉ".

J'ai protégé la feuille de manière à ce que les cellules de calculs ou d'informations immuables ne puissent être modifiées (protection de la feuille). J'ai par contre ôté le verrouillage des quelques cellules qui doivent être renseignées, logement par logement.

Je me demandais s'il était possible d'améliorer mon fichier en reverrouillant automatiquement les cellules à renseigner (préalablement déverrouillées) relatives à un logement dans le cas ou le statut du logement deviendrait "TERMINÉ" dans ma cellule avec la liste déroulante ?

De même, il faudrait que l'action inverse soit réalisable. Une cellule qui se serait verrouillée du fait du statuts 'TERMINÉ" devrait se déverrouiller si le statut était différent ("EN COURS" ou "NON RÉALISÉ").

La mise en forme conditionnelle d'une cellule Y nous permettrait-elle d'atteindre cet objectif (si cellule X = "TERMINÉ" alors Verrouillage Cellule Y sinon Déverrouillage cellule Y) ? Ou une autre fonctionnalité d'Excel ?

Vous remerciant par avance pour vos éclaircissements.

Didier.

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2022-02-13T13:05:28+00:00

Bonjour,

Le message signifie que tu essaies d'enregistrer le classeur au format .xlsx. Les classeurs avec macros doivent être enregistrés au format .xlsm. Clique sur "enregistrer sous" et choisis le type "Classeur Excel contenant des macros (*.xlsm) :

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2022-02-13T10:18:37+00:00

Bonjour,

Voici la macro modifiée. Cependant, les lignes 57 et 58 ddéverrouillées auparavant sont restées en l'état.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, Arr, I As Long, MDP As String
MDP = "plomberie"
ActiveSheet.Protect MDP, userinterfaceonly:=True
If Intersect(Target, [S7:MN7]) Is Nothing Then Exit Sub
For Each C In Target
If C.Row = 7 Then
Select Case C.Value
Case "TERMINÉ"
Arr = Array(56, 59, 60, 64, 70, 79, 80, 83, 84, 85, 90)
For I = 0 To UBound(Arr)
If Arr(I) = 90 Then
Cells(Arr(I), C.Column).Resize(, 3).Locked = True
Else
Cells(Arr(I), C.Column).Locked = True
End If
Next I
Case Else
Arr = Array(56, 59, 60, 64, 70, 79, 80, 83, 84, 85, 90)
For I = 0 To UBound(Arr)
If Arr(I) = 90 Then
Cells(Arr(I), C.Column).Resize(, 3).Locked = False
Else
Cells(Arr(I), C.Column).Locked = False
End If
Next I
End Select
End If
Next C
' ActiveSheet.Protect MDP
End Sub

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

30 réponses supplémentaires

  1. DanielCo 107.7K Points de réputation
    2022-02-02T16:13:49+00:00

    Pour me faire parvenir le classeur :

    Clique sur :

    https://www.cjoint.com/

    Clique sur le bouton "parcourir". Choisi le fichier à partager. Dans le bas de la page, clique sur le bouton "Créer le lien cjoint". Copie le lien affiché et colle-le dans ta réponse.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-02-02T14:26:53+00:00

    Bonjour,

    Alors, en fait, dans mon fichier j'ai 12 cellules à renseigner par logement et 112 logements. Donc pas mal de cellules.

    Il serait peut-être plus simple que je vous transmette une copie de mon fichier actuel pour mieux appréhender le travail à réaliser ?

    Vous remerciant par avance.

    Didier

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2022-02-02T14:10:41+00:00

    Bonjour,

    C'est possible de le faire automatiquement en installant une macro. Si tu es intéressé, dis-le en indiquant quelles cellules doivent être verrouillées ou déverrouillées.

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire