About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2007-01-12

Se pretendermos  usar o Excel para listar o conteúdo de um directório ou de uma pasta, mostrando cada nome de ficheiro numa célula de uma coluna (no exemplo, coluna A) e mostrando, igualmente a data/hora na célula correspondente da coluna seguinte e ainda fazer com que as colunas fiquem com a sua largura ajustada ao tamanho do  nome do ficheiro mais extenso, como no exemplo:

   

 

podemos utilizar o seguinte código:

 

' A partir do código apresentado num newsgroup por Tom Ogilvy

Sub ListDirectory()
Dim Msg As String
Dim rw As Long
Dim i As Long
Dim sDir As String
Msg = InputBox("Escolha o Path:")
sDir = Msg


If Len(Trim(Msg)) = 0 Then
  MsgBox "Não seleccionou nada . . ."
  Exit Sub
End If


With Application.FileSearch
    .NewSearch
    .LookIn = sDir
    .SearchSubFolders = True
    .FileName = "*.*"
    .FileType = msoFileTypeAllFiles
    rw = 2
    If .Execute() > 0 Then
    Sheets("Sheet1").Range("A:A").Clear

        For i = 1 To .FoundFiles.Count
            Sheets("Sheet1").Cells(rw, "A").Value = Dir(.FoundFiles(i))
            Sheets("Sheet1").Cells(rw, "B").Value = FileDateTime(.FoundFiles(i))
            rw = rw + 1
        Next i
    Else
        MsgBox "Não foram encontrados ficheiros"
    End If
End With
Sheets("Sheet1").Cells(1, 1).Value = "Nome do Ficheiro"
Sheets("Sheet1").Cells(1, 2).Value = "Data/Hora"
Columns("A:B").AutoFit
End Sub