Controllo inserimento dati
Hai un problema con Excel? 
Controllo inserimento dati
di barbara (utente non iscritto) data: 24/03/2014 15:51:04
Ciao a tutti. Ho un problema che spero di essere in grado di esprimere correttamente.
Ho un file Excel su cui lavorano più utenti per l'inserimento di dati aziendali. Ciascun utente, al momento della variazione di un dato (anche pregresso) dovrebbe modificare la data in cui quel dato è stato inserito per permettere a chi deve fare il lavoro successivo di sapere quali righe sono state modificate (in sostanza sovrascrivendo il record precedente). Ovviamente, questo non avviene, nel senso che spesso gli utenti se ne dimenticano e di conseguenza chi deve fare i controlli successivi non li fa. Il problema quindi è l'aggiornamento della data del record.
Pensavo che si potrebbe risolvere in questo modo:
1. soluzione ottimale (ma non so se fattibile): ogni volta che una cella di un record viene modificata, la cella che contiene da data di quel record si modifica automaticamente con la data di oggi
2. soluzione sub-ottimale: dato un range di celle che possono essere modificate, ogni volta che su una di queste viene cliccato "Invio", appare un pop up all'utente che ricorda la necessità di aggiornamento della cella in cui è inserita la data.
Avete suggerimenti su quale sia il metodo migliore (oltre a quelli da me proposti) e su come realizzarli?
Grazie in anticipo per aiuto!
B
di Lucas87 data: 24/03/2014 16:11:30
Sicuramente la prima soluzione.
Quando viene cambiato il contenuto di una cella manualmente (se la cella cambia a causa di una formula non funziona), sulla cella nella stessa riga alla colonna A viene inserita la data
Se invece di "Date" metti "Now" allora viene inserita anche l'ora.
Così però viene scritta la data anche se ad essere modificata è una cella al di fuori dell'intervallo di dati; ovvero se i tuoi dati arrivano fino alla colonna F e vai a scrivere sulla colonna H anche in quel caso viene scritta la data (e non credo che così vada bene).
Esiste il sistema per fare dei controlli, ma dovresti allegare il file con la struttura corretta e con dei dati anche non veritieri.
Private Sub Worksheet_Change(ByVal Target As Range)
Cells(Target.Row, 1) = Date
End Sub
|
grazie
di barbara (utente non iscritto) data: 31/03/2014 15:27:04
Grazie per la risposta. purtroppo non funzionava, non so come mai. alla fine ho risolto con questo:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WatchRange As Range
Dim IntersectRange As Range
Set WatchRange = Range("B2: AA9999")
Set IntersectRange = Intersect(Target, WatchRange)
If IntersectRange Is Nothing Then
Else
Cells(Target.Row, 1) = Date
End If
End Sub
|
di Lucas87 data: 31/03/2014 16:10:19
Ciao.
Ho fatto delle modifiche
In pratica hai fatto il controllo che dicevo io.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim IntersectRange As Range
Set IntersectRange = Intersect(Target,Range("B2: AA9999") )
If not IntersectRange Is Nothing Then
Cells(Target.Row, 1) = Date
End If
End Sub |
Vuoi Approfondire?