Je viens vers vous car j'ai un petit souci sur une macro :
J'ai créé le code suivant :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = True Then Exit Sub
ThisRow = Target.Row
Range("G" & ThisRow).Value = Now()
End Sub
Cela me permet à chaque modification dans une cellule d'afficher la date de la modification dans une cellule de la même ligne.
Cela fonctionne très bien, cependant j'ai un bug quand la modification vient d'une liste écrite en horizontale, ce qui parait logique au vu de mon code ...
Dans un souci de perfectionnement pourriez vous m'indiquer comment améliorer ma macro svp ?
Par exemple :
Amélioration globale de l'écriture, je débute et j'aimerais prendre les bonnes habitudes
Je ne suis pas arriver à prendre en compte une plage de donnée, car je veux que la date se modifie uniquement en cas de modification de la valeur de la cellule et non à la sélection de la cellule.
Dans un deuxième temps pour éviter les bugs sur les listes de données.
Re : VBA Amélioration code Target + liste de donnée
Bonjour,
Peut-être comme ceci :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = True Then Exit Sub
On error resume next ' <<< ajout ici
ThisRow = Target.Row
Range("G" & ThisRow).Value = Now()
End Sub
Re : VBA Amélioration code Target + liste de donnée
Bonjou Phlaurent,
Merci pour ta réponse, je viens de test avec le code à jour :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Row = True Then Exit Sub
On Error Resume Next
ThisRow = Target.Row
Range("V" & ThisRow).Value = Now()
Application.EnableEvents = True
End Sub
Et j'ai l'erreur : "Mémoire insuffisante pour afficher un entier"