Mettre à jour automatiquement la cellule dans Excel avec l'horodatage actuel lorsqu'une autre cellule est modifiée

10

Dans une feuille de calcul Excel, j'aimerais mettre à jour automatiquement une cellule avec la date et l'heure actuelles lorsqu'une autre cellule est modifiée (comme un horodatage de mise à jour).

Il y a un horodatage pour chaque ligne. J'aimerais les mettre à jour dès qu'une des cellules précédentes de la ligne est mise à jour.

Avez-vous des indications sur la façon de procéder?


la source
@Raystafarian: Nous avons des dupes circulaires. C'est la question la plus ancienne. Si les deux sont fermés, nous verrouillerons toutes les nouvelles réponses.
fixer1234

Réponses:

9

Créez une cellule avec la valeur Now (). Formatez-le comme vous le souhaitez - par exemple aaaa / mm / jj HH: mm: ss pour obtenir un horodatage complet en 24 heures.

Maintenant, tant que le recalcul automatique (la valeur par défaut) est défini, chaque fois qu'une autre cellule est modifiée, vous obtenez un nouvel horodatage.

Après réflexion, si vous souhaitez un horodatage codé en dur, mis à jour uniquement par des actions n'incluant pas d'éléments tels que classeur ouvert, impression, etc., vous pouvez créer une macro attachée à worksheet_change. Définissez la cellule cible en tant que texte, avec une mise en forme spécifique comme avant. Utilisez quelque chose comme: Sheet1.Cells []. Value = Text (Now (), "aaaa / mm / jj HH: mm: ss") dans l'événement Worksheet_Change.

Si vous mettez cela dans un modèle qui se charge au démarrage, vous n’y penserez plus jamais.

Wbogacz
la source
+1 J'aime la deuxième réponse mieux que la première.
DaveParillo
J'ai mis à jour la question pour mieux refléter le besoin: il y a un horodatage pour chaque ligne. J'aimerais les mettre à jour dès qu'une des cellules précédentes de la ligne est mise à jour. Donc, je pense qu'une macro est nécessaire ici, comme vous l'avez mentionné. Je vais chercher de cette façon. Merci.
Il est à noter que l'insertion de code dans l'événement Worksheet_Change () obligera Excel à effacer la pile d'annulation chaque fois qu'il sera exécuté. Ainsi, si vous mettez à jour des valeurs ailleurs sur la feuille, cette solution désactivera essentiellement l'annulation de cette feuille de calcul en tant qu'effet secondaire.
Ross McConeghy
8

http://chandoo.org/wp/2009/01/08/timestamps-excel-formula-help/ explique comment implémenter les horodatages à l'aide d'une formule récursive. Ils travaillent un régal.

L'article explique comment activer d'abord la formule circulaire (désactivée par défaut), puis comment créer une formule circulaire qui insère automatiquement un horodatage lorsqu'une valeur spécifique est insérée dans une cellule spécifique.

Si la cellule devant contenir l'horodatage est B3 et que la cellule à surveiller est C3, la formule est la suivante:

=IF(C3<>"",IF(B3="",NOW(),B3),"")

En d’autres termes, lorsque C3 n’est pas vide, définissez B3 sur NOW () (si B3 était vide), sinon la valeur actuelle de B3.

Cela semble stable sur les mises à jour et enregistre.

Jonathan Wright
la source