Tenere un registro dei File Excel che si aprono. - dal 04/09/04 pagina vista: volte

A qualcuno potrebbe tornare utile tenere una registrazione di tutti i file Excel che si aprono. Esiste già in Excel la possibilità di memorizzare gli ultimi file aperti (dal menù Strumenti/Opzioni/Generale/Elenco ultimi file usati:), ma con la grossa limitazione di memorizzare al massimo 9 file, e per tutti coloro che usano consultare molti file, dopo pochi giorni risulta difficile ricordare quale file si è aperto, per poterlo rintracciare.

Presento quindi una soluzione veloce da ottimizzare, che si basa sull'utilizzo di una cartella specifica, che chiameremo ad esempio Registro Files.xls, e che apriremo per prima ad inizio lavori. In questa cartella, che registrerà i files che andremo ad aprire, inseriremo delle istruzioni (una macro), che associeremo ad un pulsante posto sul foglio di lavoro, pulsante che useremo al posto del comando "Apri File" del menu. Nella Routine useremo il metodo GetOpenFileName che ci consente di  visualizzare la finestra di dialogo standard Apri e consente di selezionare un nome di file senza aprire effettivamente alcun file. Assegnando il nome del file che selezioneremo in questa finestra, ad una variabile, potremo "scrivere" il nome del file, completo di "percorso",  in una cella del foglio di lavoro. A questo aggiungeremo un ciclo di ricerca della prima cella libera in una determinata colonna, scelta a nostro giudizio, in modo che ad ogni selezione incrementiamo l'elenco dei nomi di files che sono stati aperti (o semplicemente selezionati). Aggiungiamo un'istruzione per inserire anche la data e l'orario in cui si è aperto il file, in modo da tenere un registro completo con la data. Per questo useremo la cella a destra rispetto al nome file. Alla fine di queste istruzioni, inseriamo il comando vero e proprio per l'apertura del file con Open Filename ed il gioco è fatto. Queste le istruzioni:

Sub Registra()

'usiamo la variabile NuovoFile per memorizzare il nome file selezionato nella finestra Apri
NuovoFile = Application.GetOpenFilename

'iniziamo il ciclo di ricerca della prima cella libera nella colonna 1 (la A), a partire dalla 'prima riga (iRow = 1)
Dim iRow As Integer
iRow = 1
While Cells(iRow, 1) <> ""
iRow = iRow + 1
Wend

'trovata la riga libera, nella cella della colonna 1 inseriamo il nome del file "portato" dalla 'variabile NuovoFile
Cells(iRow, 1) = NuovoFile

'e nella stessa riga, ma nella colonna 2 (la B) scriviamo data e ora con Now
Cells(iRow, 2) = Now

'indi apriamo il file selezionato
Workbooks.Open Filename:=NuovoFile, ReadOnly:=False
End Sub

e questo il risultato:

Va da se, che i più attenti, potranno implementare la cartella con un'altra macro, da associare ad un'altro pulsante, per la riapertura di un file presente nell'elenco, con un'istruzione del tipo:

  • Sub AliBaba()
    Dim X As String
    X = ActiveCell.Value
    Workbooks.Open Filename:=X, ReadOnly:=False
    End Sub

Istruzione che si basa su ActiveCell per reperire il percorso del file da aprire, e quindi sulla cella che avremo selezionato prima di premere il pulsante.

E' inoltre vero che eliminando la riga dell'istruzione, nella macro Registra(), per l'apertura del file (Workbooks.Open Filename:=NuovoFile, ReadOnly:=False,) avremo comunque la possibilità di memorizzare il nome di un file (ed il suo percorso) che ci interessa, senza necessità di aprirlo, creando quindi una Compilation. Sarà poi la macro AliBaba() che ci consentirà di aprirlo alla bisogna.

Buon lavoro.

prelevato sul sito www.ennius.altervista.org