PDA

View Full Version : Excel: popolare una cella con la data di modifica della riga a cui appartiene


robertino_salemi
05-02-2020, 11:08
Ciao a tutti,
su excel ho due colonne:

DESCRIZIONE | DATA MODIFICA

vorrei fare in modo che quando popolo una della celle della colonna descrizione, la cella accanto venga popolata con la data odierna (al momento dell'inserimento).

Nella seconda colonna avevo inserito la formula:

=SE(NON(VAL.VUOTO(B8)); OGGI(); "")

ma ogni volta che apro il file viene visualizzata la data corrente.

E' possibile agire a livello formula o serve necessariamente una macro?

Grazie.

Kaya
05-02-2020, 12:56
Ti serve una macro.
La funzione viene valutata "in tempo reale". quindi se apri excel quella viene eseguita di conseguenza metterā sempre la data di oggi.

Potresti provare con una cella d'appoggio. Mi spiego :
DESCRIZIONE | APPOGGIO | MODIFICA

Nella colonna Modifica metti una funzione che se descrizione e appoggio coincidono, non fa nulla, se invece descrizione č diversa da appoggio allora in modifica metti la data odierna e in appoggio copi il valore di descrizione.

Il trucco č quello di usare quindi la colonna appoggio come confronto per dire "č cambiato qualcosa".

robertino_salemi
05-02-2020, 13:51
Ti serve una macro.
La funzione viene valutata "in tempo reale". quindi se apri excel quella viene eseguita di conseguenza metterā sempre la data di oggi.

Potresti provare con una cella d'appoggio. Mi spiego :
DESCRIZIONE | APPOGGIO | MODIFICA

Nella colonna Modifica metti una funzione che se descrizione e appoggio coincidono, non fa nulla, se invece descrizione č diversa da appoggio allora in modifica metti la data odierna e in appoggio copi il valore di descrizione.

Il trucco č quello di usare quindi la colonna appoggio come confronto per dire "č cambiato qualcosa".

Grazie Kaya, ho risultato utilizzando la Worksheet.Change event (https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.change)


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A10")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
'Set the values to be uppercase
Target.Value = UCase(Target.Value)
Cells(Target.Row, "B").Value = Date
Application.EnableEvents = True
End Sub


Funziona!