Verificare se un file è aperto


Domanda: mi serve un'istruzione che dica se il file è aperto vai a pippo se è chiuso lo apri e poi vai a pippo.

non so come fare.

 

Risposta:
La procedura è molto semplice e si basa su un ciclo che verifica se è aperto un file che si chiama nel modo indicato. Questo non garantrisce che si apra il file esatto ma semplicemente che sia aperto un file con un dato nome: dunque non vengono gestiti i casi di omonimia tra file.

vediamo la macro:
_________________________________________

Public Sub Verifica_file()
Dim Book As Workbook
Dim trovato As Boolean

trovato = False
For Each Book In Workbooks
If Book.Name = "FILE-CHE-DEVO_VERIFICARE.XLS" Then trovato = True
Next Book
If Not trovato Then
Workbooks.Open Filename:="C:\Documents and Settings\A\Documenti\FILE-CHE-DEVO_VERIFICARE.XLS"
GoTo pippo
Else
GoTo pippo
End If

[A1] = 10

pippo:
[A1] = 1


End Sub
_________________________________________

come potete vedere la macro è semplice: esegue un ciclo tra tutti i file aperti e ne verifica il nome, se trova il nome ricercato tutto bene e sposta l'esecuzione alla label pippo altrimenti apre il file (con tutto il percorso sul disco) e successivamente sposta l'esecuzione alla label pippo. Dunque il comando

[A1]=10

che scrive il valore 10 nella cella A1 non viene mai eseguito