MACRO Private sub qui ne fonctionne plus

mima1803 -  
 Mima1803 -
Bonjour,

Je souhaiterai mettre en colonne B la date de modification des cellules de la colonne A.

J'ai utilisé private sub change. Tout fonctionnait bien jusqu'à ce que je verrouille ma feuille.

Un code erreur est apparu, j'ai donc ajouté unprotect et protect à la fin. Je n'ai plus de message d'erreur mais la macro ne fonctionne plus et parfois elle fonctionne mais que sur 1 seule modification (par exemple modification de A4, la date est bien mise en B4 par contre rien pour les autres modifications).

Je ne vois pas d'où vient l'erreur, je débute.

Merci pour votre aide.

Voici le code utilisé :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = Range("A:A").Column Then
Application.ScreenUpdating = True
For Each c In Intersect(Target, Range("A:A"))
Unprotect ("mdp")
c.Offset(, 1) = Format(Date, "dd/mm/yy")
Next
Application.EnableEvents = False
Protect ("mdp")
End If
End Sub

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    1 - Il ne faut pas désactiver les évènements en fin de procédure mais avant la boucle et surtout les réactiver après la boucle .
    2 - Il suffit de déprotéger une seule fois avant la boucle.

    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Column = 1 Then
        Application.ScreenUpdating = True
        Me.Unprotect ("mdp")
        Application.EnableEvents = False
        For Each c In Intersect(Target, Range("A:A"))
          c.Offset(, 1) = Format(Date, "dd/mm/yy")
        Next
        Application.EnableEvents = True
        Me.Protect ("mdp")
      End If
    End Sub


    1
    1. Mima1803
       
      Merci beaucoup ! Tout fonctionne ! J'ai même ajouté une autre condition.

      Merci encore pour la réponse et la rapidité.
      :D
      0