Défnir zone pour un "Worksheet_Change"

Bonjour à tous

J'ai trouvé ce code pour enregistrer la date lors d'un changement effectué dans mon tableur.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row > 1 Then Cells(Target.Row, "K") = Now()

End Sub

Existe-t-il un moyen de faire en sorte que son action se fasse rapidement.

Lors d'une saisie ou modification, j'ai le sentiment que toute la page est "scannée" et la procédure prend énormément de temps.

Je dois l'interrompre avec un "ESC" et là s'affiche un message d'erreur de macro.

Existe-t-il un moyen de délimiter les lignes d'une zone défini ?

Colonne ("C16:X2000") par exemple ?

Je bloque sur la formulation.

Merci de votre aide.

Cordialement

Willau

Bonjour,

Un exemple.

Cdlt.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1:C10")) Is Nothing And Target.CountLarge = 1 Then
        Me.Cells(Target.Row, 11).Value = VBA.Now
    End If
End Sub

Bonjour Jean-Eric !

Une fois de plus, merci pour ta redoutable efficacité !!

J'ai constaté une erreur que je commettais : ma cellule d'inscription de la date se trouvait dans la zone de modification

ça a donc créer une boucle.

J'ai réglé cela en mettant ma variable "actualisation" dans la colonne A (colonne masquée) et la zone d'analyse à partir de la colonne B. ça marche du tonnerre !!!!

Questions supplémentaire si j'ose…

1) existe-t-il la possibilité d'indiquer sur le même principe quelle cellule a été modifiée (inscription en B)

2) existe-t-il la possibilité d'indiquer sur le même principe qui a fait la dernière modification (inscription en C)

Aaaaah tant d'dées et les compétences me manquent pour toutes les réaliser

Encore merci !!

Grande classe !!

Willau

Re,

un nouvel exemple à adapter :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim n As Long
    If Not Intersect(Target, Me.Range("A1:C10")) Is Nothing And Target.CountLarge = 1 Then
        n = Target.Row
        With Me
            .Cells(n, 4).Value = VBA.Date
            .Cells(n, 5).Value = Application.UserName
            .Cells(n, 6).Value = Target.Address(0, 0)
        End With
    End If
End Sub

Excellent et efficace !

Rien à dire de plus si ce n'est un grand MERCI !

J'ai édité un post un peu plus tôt dans la semaine.

Pourrais-tu y lancé un oeil ?

Je cherchais à pouvoir faire passé de semaine en semaine une date définie dans un ControlX "Picker".

Si je ne te relis pas d'ici là, je te souhaite un excellent week-end.

Cordialement

Willau

Rechercher des sujets similaires à "defnir zone worksheet change"