Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Vedere se esiste file in una cartella

Ultimo Aggiornamento: 30/11/2016 16:34
Post: 11
Registrato il: 02/03/2015
Età: 36
Utente Junior
2010
OFFLINE
30/11/2016 15:14

Buonasera a tutti,

all'interno di una cartella ho tanti file pdf e un file excel.
Nella colonna A del file excel ho un elenco con dei nomi.
Vorrei che nella colonna B mi dica se il file della colonna A esiste o no nella cartella.

Esempio.
In A2 c'è scritto "1758", in B2 mi scrive "ok" se nella cartella c'è il file "1758", niente altrimenti.


Esiste una formula di ricerca file, o devo ricorrere al VBA?
Nel caso debba ricorrere al VBA, cosa mi consigliate?

Grazie
Post: 2.459
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
30/11/2016 15:55

Ciao dadeneli

Un punto da cui partire potrebbe essere questa fanction

vb
Function IsFile(ByVal fName As String) As Boolean
    On Error Resume Next
    IsFile = ((GetAttr(fName) And vbDirectory) <> vbDirectory)
End Function


Quindi se sul foglio in A1 c'è il nome del file completo di percorso tipo C:\TuaDirectory\TuoFile.ext

e in B1 scrivi

vb
=SE(isfile(A1)=VERO;"ok";"")


Ti restituirà "ok" se il file esiste e nulla se il file non c'è.

Alfredo
Post: 3.497
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
30/11/2016 16:03

oppure una sub
Sub FileExist()
for r = 2 to 10
  fname = "C:\percorso\" & Range("A" & r) & ".pdf"
  FileInQuestion = Dir(fname)
  If FileInQuestion <> "" Then Range("B" & r) = "OK"
next
End Sub
[Modificato da patel45 30/11/2016 16:04]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 11
Registrato il: 02/03/2015
Età: 36
Utente Junior
2010
OFFLINE
30/11/2016 16:34

Ciao Alfredo,

grazie per la risposta.

La soluzione da te proposta mi dava errore #NOME.
Mi sono andato a vedere la funzione GetAttr e ho provato a modificare in questo modo:

Function IsFile(ByVal fName As String) As Boolean
    On Error Resume Next
    IsFile = GetAttr(fName)
End Function


Ora mi funziona, ma non vorrei che tralascio qualcosa.

Cosa cambia con l'istruzione scritta da te?
IsFile = ((GetAttr(fName) And vbDirectory) <> vbDirectory)

Grazie ancora
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 13:00. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com