Date modification d'une cellule

Bonjour,

J'aimerai faire afficher la date de modification de la colonne "D" d'une cellule dans la colonne K1 (par exemple) et ceci à chaque fois qu'une modification à lieu dans la colonne D

J'ai fouillé mais je n'ai pas trouvé exactement ce que je cherche, que des codes qui affiche la date dans ma cellule adjacente des cellules de la colonne D

D'avance merci.

8classeur1.xls (34.50 Ko)
5classeur1.xls (34.50 Ko)

Bonjour,

Voir exemple joint

11classeur1.xls (47.00 Ko)

Slts

Bonjour,

Merci pour cette solution, mais y'aurais t'il moyen que ça modifie la date que dans la cellule K1 systématiquement ?

Par exemple, si je rentre une donnée en D10 ou D11 etc etc , la date se modifie que dans la cellule K1 ?

Re

Modifie la macro par

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D2:D" & Rows.Count)) Is Nothing Then
        Application.EnableEvents = False
        Range("K1").Value = Now
        Application.EnableEvents = True
    End If
End Sub

Slts

Bonjour,
boss_68 bonjour,

une variante qui prend en compte le fait qu'il est possible de se mettre en mode de saisie dans la cellule et pour autant ne pas changer la valeur.

Pour cela on copie la nouvelle valeur, on revient en arrière avec le UNDO (l'équivalent VBA du [CTRL]+Z), on récupère l'ancienne valeur et on compare :
- si même valeur alors on ne change pas la date
- si valeur différente on réinscrit la nouvelle valeur dans la cellule et on modifie la date.

J'ai mis la date et l'heure dans le code afin de voir la différence entre un change "complet" et un change "maitrisé".

Le code VBA :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Nouvelle, Ancienne
    ' s'il y a plus d'une cellule de sélectionnées alors on quitte
    If Target.CountLarge > 1 Then Exit Sub
    ' si l'on détecte un changement dans une des cellules de la colonne D
    If Not Intersect(Target, Range("D2:D" & Rows.Count)) Is Nothing Then
        ' on arrête la mise à jour de l'écran
        Application.ScreenUpdating = False
        ' on arrête la surveillance évènementielle
        Application.EnableEvents = False
        'on met en mémoire la valeur de la cellule
        Nouvelle = Target.Value
        ' on applique un "UNDO" afin de connaitre la valeur de la cellule avant changement
        Application.Undo
        ' on met en mémoire l'ancienne valeur
        Ancienne = Target.Value
        ' on compare les deux valeurs
        ' si elles ne sont pas identiques alors il y a eu de changement de valeur on modifie la date
        If Nouvelle <> Ancienne Then
            ' on remet la nouvelle valeur
            Target.Value = Nouvelle
            ' on modifie la date ici j'ai date et heure pour voir la différence entre un change et change avec valeur modifiées
            Range("K1") = Now ' date
        Else ' elles sont identiques on remet alors la nouvelle valeur pour revenir au point où l'on était
            Target.Value = Nouvelle
        End If
        ' on remet en marche la surveillance évènementielle
        Application.EnableEvents = True
    End If
End Sub

@ bientôt

LouReeD

Bonjour,

Un grand merci à vous deux, vos solutions semble fonctionner

Encore merci

Bonjour,

merci de votre retour et remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "date modification"