+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Cronologia Eventi Excel

  1. #1
    Eusty non è in linea Scolaretto
    Post
    57

    Cronologia Eventi Excel

    Buongiorno,
    E' possibile con excel creare un file che tiene traccia delle azioni eseguite su un file excel?

    Cerco di spiegarmi meglio.
    Ho un archivio in excel e dopo ogni modifica (Aggiunta di un prodotto o modifica di uno già esistente) ho scritto in vba il comando per salvare il file.
    Così facendo però ogni volta che faccio qualcosa mi il file nuovo mi si sovrascrive al precedente e in caso di errore non ho più traccia di come era prima.

    Ho modificato il comando salva con salva con nome...va meglio, solamente che così mi ritrovo con 200mila file nella cartella

    Avete consigli su come poter risolvere il problema?

  2. #2
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,060
    A domanda generica, risposta generica:
    il consiglio è quello di scrivere un file di LOG in modalità Append.

  3. #3
    Eusty non è in linea Scolaretto
    Post
    57
    Scusate le domanda generica ma è un campo del va che nn ho mai affrontato e nn so quale percorso sia più facile...in pratica il file Excel non lo userò io che lo sto scrivendo ma altre persone, io lo controllerò soltanto giornalmente x vedere se è tutto a posto.
    Purtroppo tra le persone che useranno il programma ci sarà anche qualcuno che nn è molto affermato con il pc...x questo che volevo creare qualcosa x tenere traccia delle azioni fatte in modo da avere un punto di ripristino in caso trovassi delle anomalie.
    Avevo pensato anche io a scrivere un file LOG come vedo in molti altri programmi nn excel.

    Ora provo a vedere se trovo come funziona la modalità append e se riesco ad implementarla.

  4. #4
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,060
    Adesso la questione è più chiara, per cui rispondo in altri termini.

    Fermo restando che sul server dovrebbe già esservi impostato un backup giornaliero, in genere pianificato a rotazione settimanale, e poi un backup mensile, il che è più che sufficiente.
    Se il tuo server è così impostato, allora in caso di problemi potresti recuperare il file dal backup della settimana. Questo però dipende dalla frequenza d'uso del file Excel. Sempre che tu abbia tutti i permessi necessari per farlo.

    Il file di LOG è utile, sicuramente, ma bisogna vedere quante informazioni ci devi mettere, e qui la questione potrebbe essere complessa, perché per un ripristino dei dati come lo intendi tu dovresti tenere nota di come erano prima e dopo della modifica (quindi 2 registrazioni). Forse non è la via migliore.


    Detto questo, nel tuo caso, probabilmente, può essere più utile il Salva con Nome e per evitare i 200mila file devi crearti un programmino eseguibile che cancella i file non più utili, così da mantenere solo le ultime versioni (es.10 giorni).
    Le istruzioni sono banali, per cui puoi anche usare AutoIt, un linguaggio di scripting simile al basic che può essere compilato in EXE.

    Dato che la copia va fatta sul server aziendale, questo programmino andrebbe eseguito sul server in modalità pianificata, ogni giorno, così da mantenere pulita la cartella di backup.

  5. #5
    GiuseppeMN non è in linea Scribacchino
    Post
    751
    Buona giornata, Eusty;
    consentimi un saluto a @gibra.

    Vorrei condividere una mia esperienza che forse non risolve completamente la tua richiesta ma aiuta.

    Per tenere traccia delle modifiche effettuate su un File Excel, avevo proceduto in questo modo:
    - Foglio di lavoro, protetto da Password, nascosto con Password
    - In questo Foglio di lavoro, tramite l'Evento "Worksheet_Change", opportunamente strutturato, registravo:
    - UserName di chi interviene nel File
    - Data e orario dell'intervento
    - Valore precedente
    - Nuovo valore inserito
    In questo modo potevo verificare la sequenza delle modifiche effettuate dai vari Utenti all'interno del File.

    In realtà mi preoccupavo di verificare solo le modifiche dei Valori inseriti senza controllare eventuali modifiche strutturali del/dei Fogli di lavoro; per evitare eventuali modifiche strutturali, avevo bloccato la possibilità di tali modifiche proteggendo la struttura del/dei Fogli di lavoro con Password.

    Può sembrare complicato gestire questo tipo di struttura ma in realtà, una volta testata, la Procedura funziona a dovere.



    A disposizione.

    Buon Lavoro.

    Giuseppe

  6. #6
    Eusty non è in linea Scolaretto
    Post
    57
    Grazie mille!! ora partendo dai vostri consigli provo a buttar giu qualche idea vediamo dove arrivo prima di bloccarmi

  7. #7
    Eusty non è in linea Scolaretto
    Post
    57
    Ho preso spunto da GiuseppeMN e ho scritto una macro che in un foglio Backup mi registra tutte le azioni che mi interessa tener controllato che sono state eseguite dall'apertura del file alla sua chiusura.
    In pratica quando apro il file svuoto questo Foglio Backup e inizio a registrare tutte le azioni.
    Quando chiudo il file lo salvo in doppia copia, una normale con il nome Gestione.xlsm e una invece con il nome Backup Gestione aaaammgghhmmss.xlsm (dove aaaammgghhmmss sono anno, mese,....)
    in questo modo ho limitato il numero di file salvati da uno ogni volta che facevo un'azione a uno ogni volta che chiudo il programma (quindi generalmente 1 o 2 volte al giorno)

    Per eliminare i file vecchi di backup e tenere solo gli ultimi x esempio 10, oppure quelli dell'ultima settimana...devo vedere come mi sarà più comodo, è possibile farlo tramite vba e non tramite un'eseguibile come consigliato da gibra??

    Io uso già nelle macro del mio file la funzione Kill(…) per eliminare file pdf o Cartelle di Clienti e speravo di poter usare qualcosa di simile per eliminare i vecchi file backup. Esiste un modo per contare i file backup in una cartella ed eliminare i più vecchi se superiori a un numero?

  8. #8
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,060
    Certamente che esiste, in VBA puoi usare Dir per elencare i file e poi FileDateTime per leggerne la data, oppure il FileSystemObject (vedi la guida per i dettagli).

    Il problema è che se lo fai in VBA in Excel devi sempre ricordarti di farlo, e manualmente.
    Se invece fai come ti ho detto io, puoi pianificare l'esecuzione automatica. Non c'è paragone.

  9. #9
    GiuseppeMN non è in linea Scribacchino
    Post
    751
    Buona giornata, a Tutti;
    cerco di precisare più compiutamente il senso della mia precedente proposta in risposta #5.

    La mia proposta prevedeva un Foglio di lavoro inserito all'interno del File in uso nel quale vengono registrate tutte le modifiche eseguite.
    In questo File, chi è in possesso delle autorizzazioni necessarie, potrà verificare tutte le modifiche eseguite (Quando, Da chi, Valore modificato o nuovo Valore inserito).

    L'unico File di Backup potrebbe essere quello savato in automatico ad ogni salvataggio del File Master.

    Tanto è dovuto solo per completezza a beneficio degli Utenti di Forum.



    A disposizione.

    Giuseppe

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi