XL 2016 Mise à jour de la date si modification d'une cellule

melvin

XLDnaute Nouveau
Bonjour,
Je me permet de venir vers vous car après quelques recherches, je n'ai pas réussi à réssoudre mon problème. J'ai créé un fichier permettant d'effectuer un suivi des modifications.
Pour cela j'aimerais que la date présente sur la colonne F ligne x se mette à jour si et seulement si une modification des colonnes a, b, c, d, f ligne x a été modifié. Désolé c'est dure à expliquer mais en gros si je modifie A4,B4,C4,D4,E4 ou F4 alors la date en E4 se mets à jour automatiquement. J'ai essayé avec une formule sans grande conviction et effectivement, cela ne fonctionne pas car la date change tous les jours.

J'ai donc essayé de passer par du VBA et j'ai trouvé un code que j'ai compris que partiellement :

---------------------------------------------------------------------------
Private Sub WorkSheet_Change(ByVal Target As Range)

If Target.Column = 1 Then
Cells(Target.Row, 2) = Now
End If

End Sub
----------------------------------------------------------------------------

Sur ce code on vérifie que la valeur cible pour voir s'il y a eu une modification (ici sur la colonne 1) , si c'est bien le cas alors sur la cellule cible mais sur la colonne 2 on affectera la date.
Pour l'adapter à mon besoin je pense que j'ai juste à mettre :

"If Target.Column = 1 OU Target.Column = 2... Then

Je suis assez débutant en VBA donc je dis peut être des bétises, j'ai essayé d'éxecuter cette macro sur un fichier test, cependant lorsque j'éxecute la macro j'ai une erreur de compilation "argument facultatif", quelqu'un pourrait-il m'aider s'il vous plait ?
 

Pièces jointes

  • Suivi_ref.xlsx
    13.6 KB · Affichages: 18

melvin

XLDnaute Nouveau
Bonjour,
J'ai finalement réussi à régler mon problème, voici donc mon code :

______________________________________________________
Private Sub WorkSheet_Change(ByVal Target As Range)

If Target.Column = 1 Or Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Or Target.Column = 6 Then
Cells(Target.Row, 5) = Now
End If

End Sub
_______________________________________________________

J'ai juste une question, mon problème venait de l'endroit où je mettais mon code.
J'allais dans Développeur>Macro puis j'enregistrer une macro que je modifiais puis ensuite que j'exécutais ou alors au lieu d'aller dans Macro j'allais dans VBA puis je faisais "Module" et ensuite je mettais mon code que j'exécutais or ça ne fonctionne pas mais en allant dans Développeur>Visualiser le code et en mettant le code cela fonctionne. Quelqu'un pourrait-il m'expliquer la rasion de mon problème ?
 

Discussions similaires

Statistiques des forums

Discussions
311 540
Messages
2 080 523
Membres
101 234
dernier inscrit
Layani89