Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel, cella con data automatica ad ogni modifica file

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 26/01/10 13:59

Ciao!

Ho un file excel in una cartella condivisa che i soliti 15 utenti dovranno tenere aggiornata. La mia necessità è che il file abbia in una cella la data sempre aggiornata a seconda dell'ultimo intervento in modifica (ma non all'apertura o alla visualizzazione) e mi piacerebbe collegare l'aggiornamento di questa data a ad un intervallo di celle preciso, per evitare che una semplice visualizzazione con qualche click dato qua e là potrebbe portare il sistema a pensare ad una "modifica".
Si può fare??? Grazie...
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Sponsor
 

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Anthony47 » 26/01/10 17:29

Tast dx sul tab col nome foglio che vuoi tenere sotto controllo; scegli Visualizza codice; incolla questo codice nel fram di dx:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "F2:G10"     '<<< Area da tenere sotto controllo
Track = "Z1"            '<<< Cella dove scrive data/Ora
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
Application.EnableEvents = False
Range(Track).Value = Now()
Application.EnableEvents = True
End Sub

Aggiusta le celle marcate <<< a tuo piacere

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 26/01/10 18:20

fantastico, grazie!!
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi ricky53 » 27/01/10 01:46

Ciao,
ti interessa sapere e memorizzare da chi è stata fatta la modifica e quali celle sono state modificate e magari cosa è stato inserito.

Certo in questo modo ti si allungherebbe molto la colonna, potresti cancellare le prime 100 celle quando hai superato le 500 celle di informazioni per esempio.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 27/01/10 19:35

Grazie ricky, certo questo tipo di tracking sarebbe utile. Non so se mi sarà possibile ridurre il file ma può darsi di sì.... però non mi dici come fare! :) tieni presente che il file è già pesantuccio i quanto è pieno di link (intranet) e con tali link interagisce con un altro foglio nascosto. Ma è interessante, fammi sapere. Ciao!
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Anthony47 » 27/01/10 21:10

Ad esempio questa, in sostituzione della macro precedente:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LogNum As Integer
CheckArea = "A2:C10"     '<<< Area da tenere sotto controllo
Track = "Z1"            '<<< Cella dove scrive data/Ora
LogNum = 300            '<< N° di blocchi che si conserveranno
'
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
Application.EnableEvents = False
 If Range(Track).Offset(Range(Track).Value * 2 + 1) <> Environ("UserName") Then
  Range(Track).Value = (Range(Track).Value + 1) Mod LogNum
 End If
 Range(Track).Offset(Range(Track).Value * 2 + 1) = Environ("userName")
 Range(Track).Offset(Range(Track).Value * 2 + 2) = Now()
 Range(Track).Offset(Range(Track).Value * 2 + 3).Range("A1:A2").Clear
Application.EnableEvents = True
End Sub

In questo caso non si occupa una sola cella per il track, ma la colonna sottostante alla cella "Track", per una quantita' di record definibile in LogNum. Per limitare il tempo di lavoro della macro il buffer di tracking e' usato in modalita' "rolling", cioe' riscrivendo le aree prima usate man mano che il numero di log aumenta, e la cella Track e' usata come indice nel buffer. Ogni log usa 2 celle.
La lettura va fatta dalla data/ora piu' recente all' indietro, e continuando dal fondo quando si arriva all' inizio colonna.
Si scrive nel buffer di log lo "UserName" (quello di Windows) e data/ora; altre opzioni sono il nome macchina [usare Environ("Computername")] o il domain name [usare Environ("DomainName")]; escluderei lo UserName di excel, quello si puo' variare con Strumenti /Opzioni, tab Generale.
Se lo stesso utente fa nella stessa sessione piu' modifiche viene memorizzata solo la piu' recente.

Ricky perdonera' l' invasione...

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 27/01/10 23:19

che bella Anthony! domani mi ci picchio e... farò sapere

(ricky, se ci segui un salutone anche a te!)


:)
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Flash30005 » 28/01/10 03:30

Ciao a tutti

non solo Ricky vi segue... :D

proprio oggi stavo lavorando su un foglio con 2 aeree da poter far scrivere ognuna ad un tipo di utente
e, una volta scritta, non è possibile ad altri modificare quel testo
Non nascondo che ho trovato difficoltà e spero di terminare domani.
In ogni foglio quelle aree vengono ripetute 3 volte (3 coppie, una per turno) e in una cartella ci sono oltre 300 fogli, insomma una grossa mole di dati e controlli :cry:

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel, cella con data automatica ad ogni modifica file

Postdi ricky53 » 28/01/10 08:20

Ciao a tutti,
Anthony nessuna intrusione (anch'io mi ero inserito su quanto da te proposto) quello che conta è trovare una soluzione soddisfacente per l'utente del forum.

Hai trasformato in codice quanto avevo espresso, io non ho avuto tempo ma avrei proposto la stessa soluzione ma con l'utilizzzo di due, o più, celle su colonne (adiacenti piuttosto che sottostanti) per ogni aggiornamento (ad esempio anche: celle aggiornate e dato inserito ma qui dipende da quanti dati vanno inseriti ad ogni accesso).
La scelta (di Anthony) di scrivere solo l'ultimo aggiornamento, fatto da ogni utente, è una buona ottimizzazione sul consumo di spazio e viene incontro alle necessità che ha già manifestato Fantina.

Buon proseguimento delle attività.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 11:52

...eccomi con i miei immensi limiti! :oops:

Anthony la seconda macro che mi hai dato mi ritorna un errore: Errore di runtime 1004

ho provato a ricontrollare ma da sola non ci arrivo...
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Flash30005 » 01/02/10 12:51

Strano...

Ho usato anche io quel codice e funziona perfettamente
Fai questa prova copia l'intero codice
apri una nuova cartella (avrai Foglio1, Foglio2 e Foglio3)
entra nel VBA con i tasti CTRL+F11
avrai già in evidenza il Foglio1 a sinistra della schermata e clicchi due volte (consecutive e veloci) su di esso
ti apparirà sulla destra la finestra disponibile per incollare il codice copiato.
Chiudi il VBA, torni sul foglio excel e scrivi qualsiasi cosa in una cella compresa nell'area tra A2 e C10
dovresti vedere scritta nella colonna Z quanto previsto dalla macro senza alcun errore

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 14:35

macchè Flash. Ho fatto la tua prova su excel 2002 e su excel 2007 ma la combinazione Ctrl+F11 mi apre il foglio di lavoro Macro1 vicino agli altri. Allora ho fatto il percorso con tasto destro sulla linguetta di Foglio1 che mi ha aperto il Vba, ho selezionato il foglio1 come detto da te e ho incollato il codice esattamente come lo leggo: ho scritto come mi hai indicato ma Z1 non mi torna nulla.
Ho provato a salvare e riaprire ma niente... non credo sia la protezione del foglio perchè ho provato anche senza.... Abbiate pazienza...
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Anthony47 » 01/02/10 15:14

Anche io ho grandi limiti, per cui se non mi dici su quale riga ti compare l' errore non mi viene nessuna (buona) idea.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Flash30005 » 01/02/10 15:55

fantina ha scritto:macchè Flash. Ho fatto la tua prova su excel 2002 e su excel 2007 ma la combinazione Ctrl+F11 mi apre il foglio di lavoro Macro1 vicino agli altri....


Tu dici hce hai fatto come ti ho detto io ma non è così
io ho detto
Flash30005 ha scritto:apri una nuova cartella (avrai Foglio1, Foglio2 e Foglio3)
entra nel VBA con i tasti CTRL+F11

Se tu avessi aperto solo una NUOVA cartella non avresti dovuto avere alcuna macro1 al suo interno e né tantomeno avere un foglio protetto.
Ripeto: l'applicativo excel non deve essere attivo con altri file aperti.
Apri excel e avrai Cartel1
inserisci quel codice nel VBA del foglio1, che dovrebbe essere già selezionato (con excel 2002), con 2007 si presenta diversamente ma potrai fare la stessa cosa, cliccandoci sopra (videata VBA)

Leggi anche il post di Anthony (qui sopra)
Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 17:08

no flash, era una cartella nuova... ci riprovo ma sono sicurissima...
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 17:09

riprovato.... giuro!!
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 19:19

Anthony l'errore me lo da nella riga del tuo codice:
If Range(Track).Offset(Range(Track).Value * 2 + 1) <> Environ("UserName") Then

....
che scemata ho fatto?
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 19:34

se può essere utile dopo il terzo if il cursore vicino alle prime due paroline "Range" mi apre una finestrina che legge "Errore definito dall'applicazione o dall'oggetto" mentre nella terza volta mi legge data e ora (che però non sono aggiornate)
Range(Track).Offset(Range(Track).Value * 2 + 1)
Range(Track).Offset(Range(Track).Value * 2 + 2)
Range(Track).Offset(Range(Track).Value * 2 + 3)
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Re: Excel, cella con data automatica ad ogni modifica file

Postdi Anthony47 » 01/02/10 20:06

Devi cancellare in Z1 la data che e' presente per la macro precedente.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, cella con data automatica ad ogni modifica file

Postdi fantina » 01/02/10 22:56

nulla.... ho preso un file diverso con un elenco qualunque, ho rincollato il codice, mi ha fatto la grazia di farmelo vedere una sola volta funzionare e poi non è più ricomparso..
ho rifatto la stessa cosa con un paio di altri file nuovi di zecca (cartella1, cartella2...) nulla. Ma cos'ha che non gli piace?
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Excel, cella con data automatica ad ogni modifica file":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite