Modification code VBA date fixe

Bonjour à tous,

J'ai une petite question, j'utilise actuellement le code ci-dessous:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("AB:AB")) Is Nothing Then
    If Target.Count = 1 Then
        Application.EnableEvents = False
        Target.Offset(0, 5).Value = Now
        Application.EnableEvents = True
    End If
End If
End Sub

Ce code me permet, lorsqu'une cellule en AB est rempli de mettre la date et l'heure en AG et que celle-ci reste fixe. Jusqu'ici tout va bien.

Par contre si je modifie AB, AG se remet à jour. Est-il possible d'adapter le code pour que AG reste fixe et ce même si je modifie AB?

Bonjour,

Un essai ...

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("AB:AB")) Is Nothing Then
   If Target.Count = 1 Then
      If Target.Offset(0, 5) <> "" Then
         Exit Sub
      Else
         Application.EnableEvents = False
         Target.Offset(0, 5).Value = Now
         Application.EnableEvents = True
      End If
   End If
End If
End Sub

ric

Merci Ric pour ta réponse

J'ai essayer mais le code que tu as donnée ne fonctionne pas (d'ailleurs il ne fait plus apparaitre la date du tout)

Bonjour,

Je viens de le tester à nouveau sous Excel 2016 et Excel 2007 et ça fonctionne bien.

Je suis désolé s'il ne fonctionne pas sous Excel 2019.

ric

Bonjour Ric,

Alors je ne sais pas pourquoi hier le code que tu m'avais donner ne fonctionner pas, car aujourd'hui il fonctionne bien (j'ai du faire une mauvaise manip hier) par contre la date se met toujours à jour lorsque je change la valeur de ma cellule cible (AB), donc je reviens au même problème.

Je viens de penser, si sa se trouve c'est parce que ma cellule cible est sous forme de volet (validation de données) possible?

En effet, je suis sous Excel 2019 :'(

J'ai encore dit une bêtise car dans je rentre des données dans AB, la date dans AG ce met parfois à jour mais pas toujours!! sur certaines lignes elles ne se met pas à jour.... Je comprend pas pourquoi

J'ai trouver Ric ton code été bon en effet mais vu que j'ai eu le malheur d’intervertir des colonnes j'avais adapter ton code mais j'avais oublier quelques adaptation

J'avais adapter comme cela:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B:B")) Is Nothing Then

If Target.Count = 1 Then

If Target.Offset(0, 5) <> "" Then

Exit Sub

Else

Application.EnableEvents = False

Target.Offset(0, -1).Value = Now

Application.EnableEvents = True

End If

End If

End If

End Sub

Et il fallait pas oublier de changer le 5 en -1 donc il me fallait cela:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B:B")) Is Nothing Then
   If Target.Count = 1 Then
      If Target.Offset(0, -1) <> "" Then
         Exit Sub
      Else
         Application.EnableEvents = False
         Target.Offset(0, -1).Value = Now
         Application.EnableEvents = True
      End If
   End If
End If
End Sub

Donc c'est tout bon pour moi merci beaucoup Ric pour ton aide ça fonctionne à merveille =D

ric

Rechercher des sujets similaires à "modification code vba date fixe"