2

I have a spreadsheet with a column labeled, "Status Date," in a row with several other cells, some with other dates, some with just text, and others which evaluate whether a set of conditions are true, in which case the result is a "Yes" or "No" answer, which is then conditionally formatted to fill that cell based on the answer.

What I would like to be able to do with the "Status Date" cell value is have it populate and "lock" with today's date if any of the other cells in that row change, either due to an edit or addition/deletion of information, including the ones that contain the formulas based on the values in the other cells. It should remain static until something else gets changed in that same row at a later time. None of the other cell values are evaluated on the "Status Date" column, so if it needs to be moved to Column A or B for a formula to work, or maybe for a VBA Macro to be used, that shouldn't be a problem.

Status Date Column Example

3

1 Answer 1

0

VBA Method

This type of time automatic timestamping is only truely possible with writing some very basic VBA in the background of Excel. Look for instance at this link to get you started:

https://docs.microsoft.com/en-us/office/troubleshoot/excel/run-macro-cells-change

Unfortunately VBA macros aren't always an option especially if the file will be shared. Some enterprise security settings block macros completely, not to mention the challenge to code VBA if you are not familiar with basic programming.

Data Validation Timestamping method

Luckily their is two workarounds for timestamping in Excel without VBA. The one is to use Data Validation of the list type to "sample" the current time. Set one reference cell or named range equal to =TODAY() or =NOW() which will auto update every time you edit any cell (i.e. recalc) as NOW/TODAY is a volatile function. Set data validation (on the data ribbon) for the date entry cell, choose list and refer to the TODAY/NOW cell. This gives a dropdown list with the time reflecting the most recent recalc. Once selected from the dropdown, it copies the time value and will "lock" it in - BUT you still need to select it yourself.

Circular formula method

The other method requires changing Excel settings to allow circular formulas/iterative calculations, which isn't ideal because it is a global setting. But it works really well and exactly like you'd expect in your question. See here:

https://howtoexcelatexcel.com/blog/create-a-timestamp-in-excel-with-formulas/

Pro's and con's

The VBA method works very reliably and most suitable for a single user or in cases where users are familiar with allowing macros based on security settings. Some basic coding skills required. Also once a macro executes, your undo history is usually lost.

The data validation method is very simple to implement and works out of the box w/o special settings or security allowances. It is however required that the user be consistent in using the dropdown cell to timestamp (after making other changes on the row).

The circular formula method reflects the timestamp automatically as you enter data in other cells but you must enable a global Excel setting for iteration with some unintuitive behaviour. While the setting is saved with the workbook, if you open any other workbook before this one the setting resets to no iteration. Opening this workbook doesn't change it back. You must open this workbook first. Also opening & saving other workbooks then saves the global setting with those files too which can become a (minor) issue. Mostly it disables error reporting upon entering circular formula in normal workbooks.

Ps. Shortcut key method

Sometimes the simplest method isn't the most ideal from the IT guy's point of view, but it works for the end user. You can press one of these shortcuts to just insert the current time or date in the current cell as a value:

CTRL and ; (to insert the current date)
CTRL SHIFT and : (to insert the current time)

Not the answer you're looking for? Browse other questions tagged .