sugestão na alteraç...
 
Notifications
Clear all

sugestão na alteração desse código

2 Posts
1 Usuários
0 Reactions
549 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia galera,
Gostaria de saber como altero as ultimas linhas desse código, que classifica os arquivos de um pasta por data de modificação e imprimi.
O problema é que não consegui imprimir esses dados no excel.
Alguma sugestão?

Sub OpenInOrder(strFolderPath As String)
    ' Lists files in descending order of date modified
    ' Can alter DateLastModified to DateCreated if so desired
    ' Call using syntax like: OpenInOrder("C:Test folder")
    
    Dim colFiles As Collection
    Dim fso As Object, fdr As Object, filTemp As Object
    Dim lngIndex As Long, lngInsert As Long
    Set colFiles = New Collection
    Set fso = CreateObject("Scripting.Filesystemobject")
    Set fdr = fso.GetFolder(strFolderPath)
    Dim n As Long
      
    For Each filTemp In fdr.Files
        If colFiles.Count = 0 Then
            colFiles.Add filTemp, filTemp.Name
        Else
            lngInsert = 0
            For lngIndex = 1 To colFiles.Count
                If filTemp.DateLastModified >= colFiles(lngIndex).DateLastModified Then
                    lngInsert = lngIndex
                    Exit For
                End If
            Next lngIndex
            If lngInsert = 0 Then
                colFiles.Add filTemp, filTemp.Name
            Else
                colFiles.Add filTemp, filTemp.Name, lngInsert
            End If
        End If
    Next filTemp
    
'    A alteração seria aqui, jogar essas informações para o excel.
    'For lngIndex = 1 To colFiles.Count
    '   MsgBox (colFiles(lngIndex).Name)
    '   n = n + 1
   ' Next lngIndex
End Sub
 
Postado : 21/02/2013 7:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Quando diz "...não consegui imprimir.."; refere-se a listar os arquivos em uma planilha?
Se for isso experimente:
Altere

'For lngIndex = 1 To colFiles.Count
    MsgBox (colFiles(lngIndex).Name)
       n = n + 1
     Next lngIndex

Para:

 For lngIndex = 1 To colFiles.Count
    Sheets("plan1").Range("A" & lngIndex + 1) = (colFiles(lngIndex).Name)
     Next lngIndex
 
Postado : 25/02/2013 8:57 am