Eventi Chiusura File



  • Eventi Chiusura File
    di isy data: 08/06/2014 20:57:44

    Ho creato un file con un Form per gestire la chiusura del file
    Lo allego per poterlo testare e migliorare grazie ai vostri consigli

    File di prova: Sequenza Eventi Chiusura File.xls



  • di Vecchio Frac data: 09/06/2014 17:45:01

    Non ho ben capito perchè *non* ti basta intercettare l'evento BeforeClose dell'oggetto ThisWorkbook senza dover creare una variabile Application.

    Per eliminare il medesimo file Excel potresti avviare un vbs che attenda con Sleep un secondo prima di killare il file.

    Per pilotare Winrar potresti utilizzare una shell apposita (non ho verificato ma suppongo che da linea di comando WinRar consenta di manipolare i file al suo interno).
    Qualcosa tipo:
    Set oShell = CreateObject("WScript.Shell")
    rar_file = Chr(34) & "C:percorso ome del file.rar" & Chr(34)
    oShell.Run "WinRar.exe e " & rar_file & " " & destination ' seguono opportuni parametri per manipolare i file






  • di isy data: 09/06/2014 18:32:56

    Cit: Non ho ben capito perchè *non* ti basta intercettare l'evento BeforeClose
    Non comprendo come sia possibile modificare il "codice" come da suggerimento

    Provo a dare una breve spiegazione dell'utilizzo del file.
    Dopo aver scaricato dalla rete e visualizzato più file Excel mi chiedevo se era possibile cancellare questi chiudendo il file con la X.
    Devo proprio installare Winrar per gestire i file compressi?

    Vorrei poi modificare il codice per spostare il file in cartelle preferite
    Formule
    Grafici
    Giochi
    Ecc...




  • di Vecchio Frac data: 09/06/2014 18:34:14

    Ok, il meccanismo è divenuto più chiaro una volta provato... in pratica alla chiusura di ogni nuovo file Excel aperto dopo il tuo modello viene proposto il form in questione.
    Ora devo capire se alla domanda (eliminare file Excel) ho già risposto in modo pertinente oppure no ^_^





  • di Vecchio Frac data: 09/06/2014 20:29:08

    Isy, la mia risposta precedente l'ho scritta mentre spedivi la tua quindi non avevo letto la tua precisazione :)
    Chiaramente ti serve un WithEvents per gestire file diversi da quelli in uso altrimenti devi scrivere un evento BeforeClose per ogni file e non è il tuo caso.

    Per "cancellare i file chiudendoli con la X" intendi eliminarli o soltanto chiuderli? (presumo la prima visto il contenuto delle premesse). Quindi deve essere già noto il percorso di download.
    Io suggerivo l'esecuzione di un piccolo vbscript esterno a Excel che facesse il lavoro sporco di killaggio, magari passandogli come parametro il path dei file.
    Winrar credo che non sia necessario perchè penso che i moderni WInzip e 7-zip siano in grado di gestire i rar (è vero comunque il contrario: rar gestisce bene zip e compagnia).
    Per spostare il file in altre cartelle si può pensare, banalmente, a un SaveAs prima della chiusura.