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

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

Postdi Flash30005 » 01/02/10 23:44

Il fatto che ti funzionato (in parte) solo una volta è perché la macro non è stata completata ed è rimasto il codice Event disabilitato pertanto per ripristinare esegui manualmente questa macro
Codice: Seleziona tutto
Sub Ripristina()
Application.EnableEvents = True
End Sub

L'errore nella riga credo dipenda da
Environ
dellla riga Environ("UserName") Then
non riconosciuto da office 2002 e 2007 :roll:
Prova a fare così
in un modulo inserisci questo codice:
Codice: Seleziona tutto
Public Utente As String
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Sub test()
Dim lpBuff As String * 25
Dim ret As Long, Username As String
ret = GetUserName(lpBuff, 25)
Utente = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Sub

Poi sostituisci la macro nel Foglio1 con questa
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
Call test
Application.EnableEvents = False
If Range(Track).Offset(Range(Track).Value * 2 + 1) <> Utente Then
  Range(Track).Value = (Range(Track).Value + 1) Mod LogNum
End If
Range(Track).Offset(Range(Track).Value * 2 + 1) = Utente
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
Sub Ripristina()
Application.EnableEvents = True
End Sub

Ora dovrebbe funzionare anche con le tue versioni di office

Fai sapere
Ciao

P.s. per il test apri solo una cartella di lavoro completamente vuota
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-

Sponsor
 

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

Postdi Anthony47 » 02/02/10 00:36

La macro con Environ("UserName") e' stata collaudata su 2002 e 2003, farlo con le API e' una inutile complicazione.
E' invece giusta l' intuizione di Flash che se la macro non si completa allora gli eventi rimangono disabilitati e si devono riabilitare con quella nuova macro.

Non ho capito che fine ha fatto l' errore 1004, ma ora leggo che "ha funzionato una volta e poi non e' piu' ricomparso"; ebbene, ricordo che la macro se la modifica e' introdotta dallo stesso utente NON SCRIVE altre righe, ma modifica solo l' ora della modifica; insomma per ogni utente registra una coppia di righe e basta.
Se vuoi scrivere piu' volte le modifiche dello stesso utente allora devi eliminare la riga If che ti dava errore e la successiva end If.

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

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

Postdi fantina » 03/02/10 01:01

Ciao, ci siamo... :)
allora: il sistema di flash con il codice nel modulo e l'altra macro ha funzionato
(e con questo siamo alla terza versione di excel, perchè a casa ho il 2003.......... bhà)

Ora: il file è di 650 righe, gli utenti sono 20, ognuno di loro aggiorna più o meno 30 righe asolutamente diverse. Ho fatto, Anthony, la modifica che mi hai detto e funziona. Il log tra l'altro sembra incrementarsi -ovviamente- allo scatto di almeno un minuto, se questo corrisponde alla realtà gli utenti in un minuto hanno il tempo di registrare almeno dieci righe. Grazie mille intanto... se avete altre migliorie da suggerirmi...

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

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

Postdi fantina » 03/02/10 01:08

O bon dieu....! come non detto... funziona tutto per carità, mi ora aggiorna ogni digitazione... Meglio così!
SPQM ..... sono pazze queste macro......................... :eeh:
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

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

Postdi Anthony47 » 03/02/10 01:41

Le macro sono infallibili, quindi opterei per SPQF :D

Se ti interessa, puoi loggare l' indirizzo di cella, l' utente, la data/ora; pero' a questo punto lo farei usando 3 colonne sulla stessa riga (quindi una per evento). Ti suggerirei pero' di provare a fare le modifiche da sola, non per un fatto di sadismo ma perche' voglio capire se hai imparato la lezione.... Ma se non ci riesci sai cosa fare.
Per sapere la cella modificata puoi usare l' istruzione Target.Address

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

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

Postdi fantina » 03/02/10 09:47

va bene va bene, ci provo, ma non aspettarti molto da me..
Però sto studiando!... a dopo :)
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

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

Postdi fantina » 04/02/10 14:40

purtroppo devo interrompere i miei... studi per sciogliere un dubbione: l'esecuzione della macro può essere bloccata dalla protezione foglio? Magari non c'entra nulla ma non funziona a foglio protetto, levo la protezione e il contatore gira...

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

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

Postdi Anthony47 » 04/02/10 15:18

La macro scrive in col Z; hai tolto la protezione a queste celle prima di proteggere il foglio?
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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

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

Postdi fantina » 04/02/10 16:31

certo che no, sono quelle che mi interessa avere protette... se l'utente pasticcia gli basta dare una ditata su canc...
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

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

Postdi Anthony47 » 04/02/10 17:15

Beh, nemmeno la macro scrive su un' area protetta.
Usa quindi un foglio di servizio, che poi nasconderai ma lascerai sprotetto.
Poi invece di "Range(Track).etc etc" userai sempre Sheets("Nascosto").Range(Track).etc etc".

Per nascondere il foglio, in una macro di Workbook_Open (o in altra macro che viene eseguita) inserisci la riga
Sheets("Nascosto").Visible = xlVeryHidden, mentre per aprirlo ti servira' Sheets("Nascosto").Visible = True

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

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

Postdi ricky53 » 05/02/10 10:03

Ciao,

per scrivere,mediante una macor, su un foglio protetto puoi utilizzare la protezione con il parametro "UserInterFaceOnly" a "True".

Prova l'esempio che ti allego:

Codice: Seleziona tutto
Sub Scrivi_su_foglio_Protetto()
    Dim wSheet As Worksheet
    For Each wSheet In Worksheets
        wSheet.Protect Password:="psw1", UserInterFaceOnly:=True
    Next wSheet
    Foglio1.Select
    [A1] = "Prova di scrittura tramite macro su foglio protetto con:"
    [B1] = "UserInterfaceOnly"
    Range("A:B").EntireColumn.AutoFit
End Sub


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 Anthony47 » 05/02/10 11:16

wSheet.Protect Password:="psw1", UserInterFaceOnly:=True
Non si finisce mai di imparare!
L' opzione va applicata /confermata ad ogni apertura del file (l' ho letto nell' help-on-line...)

Ciao a tutti.
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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

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

Postdi fantina » 05/02/10 14:21

per ora ringrazio... oggi mi godo un weekend lungo ma lunedì sarò dinuovo "sul pezzo" e vi farò 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 Flash30005 » 05/02/10 14:53

Anthony47 ha scritto:
wSheet.Protect Password:="psw1", UserInterFaceOnly:=True
Non si finisce mai di imparare!


Anthony ci occorre un'altra vita... :)

Buon Weekend Fantina (lontano da Pc) :D

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 » 05/02/10 17:30

Ooooooh, insomma! :aaah se non ci fossi io e quelli come me sai che noia per voi insegnare agli imparati.... buon w/e a tutti :) :) :)
fantina
Utente Senior
 
Post: 476
Iscritto il: 05/03/07 15:24

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

Postdi mauristall » 09/02/10 16:58

Ciao a tutti, sono nuovissimo....
Ho letto i vs. post e mi sono risultati utili al mio problema.
Non riesco però (lo ammetto sono una frana con le macro...) a copiare la macro su tutte le celle che mi servono. - Mi spiego: in A4 mi esce la data delle modifiche che effettuo sull'intervallo B4:BT4; considerando che il foglio su cui lavoro ha un'area di A4:BT10692 volevo che su ogni riga A4,A5,A6....A10692 mi risultasse la data delle variazione effettuate nelle colonne B4:BT4, B5:BT5, B6:BT6 ... B10692:BT10692.
Ora la macro da voi utilizzata mi da le variazioni della prima riga .. come posso fare per ottenere lo stesso sulle altre righe? Aiutatemi.... Grazie... :!: :?: :!: :?:
mauristall
Newbie
 
Post: 2
Iscritto il: 09/02/10 16:31

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

Postdi Anthony47 » 09/02/10 19:10

Ciao mauristall e benvenuto nel forum.
Modificherai la macro come segue:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "B4:BT10692"     '<<< 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("A" & Target.row).Value = Now()
Application.EnableEvents = True
End Sub


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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

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

Postdi mauristall » 10/02/10 11:59

Grazie per l'aiuto ti faccio sapere come va...

Ciao.
mauristall
Newbie
 
Post: 2
Iscritto il: 09/02/10 16:31

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

Postdi cristianlorenzon » 07/06/16 15:24

Ciao a tutti,
in merito al codice di cui sopra che riporto:
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "A2:A10" '<<< 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

Come si fa a farlo fare per più celle risultanti? Nel senso che sopra per il range A1:A10 mi da il valore nella cella Z1, come faccio ad aggiungere un secondo risultato, ad esempio per il range A11:A20 mi dia il valore nella cella Z2 e così di seguito per svariate celle risultanti su diversi range? Grazie
cristianlorenzon
Newbie
 
Post: 2
Iscritto il: 07/06/16 15:04

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

Postdi alfrimpa » 07/06/16 15:34

Ciao Christian

Potresti usare l'istruzione UNION in questo modo

Codice: Seleziona tutto
Dim CheckArea as Range
Set CheckArea = Union(A1:A10", "C1:C10", "F1:F10", ........)
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 842
Iscritto il: 30/12/13 17:01
Località: Napoli

PrecedenteProssimo

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 5 ospiti