Condividi:        

Macro lista file in una determinata cartella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro lista file in una determinata cartella

Postdi marcomlo » 23/03/17 16:39

Buongiorno stimati ed egregi colleghi, ho questa macro che mi sale per una braga, spiego:
il risultato mi crea la lista file ma con estensione. Non riesco a modificarla perché dia il risultato del "solo" nome e senza .* (estensione).
Grazie

Codice: Seleziona tutto
Sub LeggeFileInDir()
Dim strFile As String
Dim r As Integer
mFolder = "f:\cannella\" ' directory di cui ottenere in colonna A la lista file
strFile = Dir(mFolder & "*.*")
r = 1
Do While strFile <> ""
Cells(r, 1) = strFile
strFile = Dir
r = r + 1
Loop
End Sub
marcomlo
Newbie
 
Post: 7
Iscritto il: 22/03/17 14:06

Sponsor
 

Re: Macro lista file in una determinata cartella

Postdi patel » 23/03/17 19:19

Codice: Seleziona tutto
Cells(r, 1) = left(strFile, instr(strFile,"."))
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Macro lista file in una determinata cartella

Postdi marcomlo » 23/03/17 20:03

Grazie anticipatamente, ma rimane il punto alla fine, posso eliminarlo con sostituisci tutto ma non è possibile farlo sparire?
marcomlo
Newbie
 
Post: 7
Iscritto il: 22/03/17 14:06

Re: Macro lista file in una determinata cartella

Postdi Anthony47 » 23/03/17 23:55

L'equivalente di quanto hai cominciato a fare:
Codice: Seleziona tutto
Cells(r, 1) = Split(strFile, ".", , vbTextCompare)(0)
E' idoneo nel 99% dei casi

Per una gestione piu' completa (es casi in cui l'ext manca), al posto della riga Cells(r, 1) = left(strFile, instr(strFile,".")) inserisci
Codice: Seleziona tutto
pext = InStrRev(strFile, ".", , vbTextCompare)
If pext > 1 Then
    Cells(r, 1) = Left(strFile, InStrRev(strFile, ".", , vbTextCompare) - 1)
Else
    Cells(r, 1) = strFile
End If

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro lista file in una determinata cartella

Postdi marcomlo » 24/03/17 08:19

Direi Santo subito... :D :D i miei complimenti Anthony. Posto in firma la macro completa così resta ai posteri per chi servisse
Codice: Seleziona tutto
Sub LeggeFileInDir()
Dim strFile As String
Dim r As Integer
mFolder = "f:\Pollini 02\" ' directory di cui ottenere in colonna A la lista file
strFile = Dir(mFolder & "*.*")
r = 2
Do While strFile <> ""
Cells(r, 1) = Left(strFile, InStr(strFile, "."))
pext = InStrRev(strFile, ".", , vbTextCompare)
If pext > 1 Then
    Cells(r, 1) = Left(strFile, InStrRev(strFile, ".", , vbTextCompare) - 1)
Else
    Cells(r, 1) = strFile
End If
strFile = Dir
r = r + 1
Loop
End Sub
marcomlo
Newbie
 
Post: 7
Iscritto il: 22/03/17 14:06

Re: Macro lista file in una determinata cartella

Postdi patel » 24/03/17 18:48

marcomlo ha scritto:Grazie anticipatamente, ma rimane il punto alla fine, posso eliminarlo con sostituisci tutto ma non è possibile farlo sparire?
bastava ragionare un poco e arrivava la soluzione
Codice: Seleziona tutto
Cells(r, 1) = left(strFile, instr(strFile,".") - 1)
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Macro lista file in una determinata cartella

Postdi Anthony47 » 24/03/17 20:11

Questa tecnica dovrebbe pero' andare in crisi in caso di nome file contenente piu' volte il carattere "punto", oppure nomi privi di Extension.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro lista file in una determinata cartella

Postdi patel » 24/03/17 21:05

è vero quello che dici, ma secondo me occorre imparare per gradi, batterci la testa e correggere, avere tutta la pappa scodellata subito non è educativo
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03


Torna a Applicazioni Office Windows


Topic correlati a "Macro lista file in una determinata cartella":


Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti