Mettre la date du jour dès que je saisi dans une autre cellule

Bonjour :-)))))

Comment mettre la date du jour dans une certaine cellule dès que je saisi ou que je ressaisi dans une autre cellule bien précise ?

Et que cette date reste la même jusqu'à ce que je refasse une saisie dans la cellule ?

Exemple : si je clique pour changer le texte en A3, automatiquement j'ai la date du jour en A4. Et cette date A4 ne rechangera que si un jour je rechange le texte de la cellule A3 ;)

Merci :)

Bonne soirée :-))))))))))))))))))

Bonjour,
Avec une petite macro c'est possible:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Me.Range("A3")) Is Nothing Then
    Me.Range("A4").Value = Date
  End If
End Sub

Bonsoir,
fcyspm30 bonsoir,

une variante qui prend en compte le fait qu'il est possible le lendemain par exemple 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 la cellule A3
    If Not Intersect(Target, Range("A3")) 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
            Target.Value = Nouvelle
            Range("A4") = 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

Le Fichier :

@ bientôt

LouReeD

Bonjour et merci bcp à vous 2 :-)))

LouReed, j'ai enregistré la macro mais rien ne se passe pour les cellules "N3" et "J3".

Sais-tu pourquoi ?

Merci

Bonne journée :-)

Bonjour,

La macro Private Sub Worksheet_Change(ByVal Target As Range) doit être mise dans la feuille à contrôler (Blad1 je suppose et non pas dans un module standard.

Ton fichier corrigé

A+

Bonjour,
Une petite modification pour prendre en compte toutes les lignes

Bonsoir et merci beaucoup,

J'ai essayé de rajouter d'autres colonnes à celle de "N". La "T", la "Y", etc...

Mais je me suis trompé dans les lignes de commandes :(

Quelqu'un sait faire ?

Merci :-)))))))

Bonne soirée

Bonsoir,

"LouReed, j'ai enregistré la macro mais rien ne se passe pour les cellules "N3" et "J3"."

Ca sert à quoi que Ducros se décarcasse ?
Je fourni un code, je fourni le fichier qui va bien avec et vous ne voyez pas où copier le code... Encore une fois si votre fichier avait été fourni dès la première question en expliquant la volonté réelle de réaction en fonction d'une action...

Je vous laisse entre de bonnes mains.

@ bientôt

LouReeD

Bonjour,

Bjr Lou. J'espère que je ne t'ai pas froissé ! L'idée était juste de corriger rapidement cette bétise...

Pas facile d'informatiser un classeur qui n'a pas vraiment été conçu pour ça !

Utiliser des macros suppose un minimum de rigueur dans la conception des tableaux...

A défaut il faut utiliser des compromis plus ou moins tirés par les cheveux.

Le mien à été de créer un tableau des colonnes Disciplines et DatesCe tableau se trouve en Feuille "Prm" qui peut être masquée et devra être mise à jour à chaque modification de Bad1 (Ajout ou suppression de colonne)

Il a été créé dans le Gestionnaire de nom 2 noms (CTot et RefCol) qui sont indispensable (utilisés par la macro.)

A+

Bonjour à vous et merci beaucoup !!!!

C'est tt bon et j'ai compris pour la feuille "Prm" ;)

Bon w.e. :-)))))))))))))))

Bonjour,

Nullement froissé galopin01 !c'est le principe d'un forum, tout le monde participe à la discussion ! Loin de moi l'idée d'un "touche pas à mon post" comme j'ai déjà vu ici

Seulement j'ai suivi le fil bien après et tout avait changé !

J'ai juste expliqué au demandeur qu'avec le fichier et le code il aurait pu en déduire son erreur : n'a pas le mettre dans un module standard.

Après avec la fourniture du fichier et une demande complète par rapport à ce dernier cela aurait éviter de perdre du temps plus qu'un crossposting !

Bon week-end à tous.

@ bientôt

LouReeD

J'avoue, j'y comprends pas grand chose aux macros (modules standards ou autres) :-(

Encore merci pour votre patience :-)))))))))

Bon w.e. :-)))))))))))

Pas de soucis !

je disais cela, c'était plus sous forme d'information qu'autre chose, et comme cela sur vos prochaine demandes on aura "tout du premier coup" !

Passez une bonne journée !

@ bientôt

LouReeD

T'inquiète : "un homme averti en vaut 2" !!!!!! :-))))))))))))

En plus, tu avais eu énormément de patience sur des précédents sujets ;-)))

Merci, toi aussi bonne journée

à bientôt :-))))))))))))))

oui c'est fait, désolé :-)))))

Rechercher des sujets similaires à "mettre date jour que saisi"