Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
#73812
Boas,

Experimente a seguinte MACRO VBA.

Vai eliminar todos os ficheiros de uma pasta exepto os dois ficheiros mais recentes, pode adaptar para você.
Código: Selecionar todos
Sub ManterApenasDoisArquivosMaisRecentes()

    Dim pasta As String
    Dim arquivos() As String
    Dim i As Integer
    Dim dataCriacao() As Variant
    Dim arqInfo As Object
    
    ' Defina o caminho da pasta onde os arquivos são salvos
    pasta = "INSERIR CAMINHO DA PASTA"
    
    ' Lista todos os arquivos na pasta
    arquivos = Split(CreateObject("WScript.Shell").Exec("cmd /c dir """ & pasta & """ /s /b /o:gn").StdOut.ReadAll, vbCrLf)
    
    ' Inicializa um array para armazenar a data de criação de cada arquivo
    ReDim dataCriacao(1 To UBound(arquivos) + 1)
    
    ' Cria um objeto para obter informações sobre os arquivos
    Set arqInfo = CreateObject("Scripting.FileSystemObject")
    
    ' Preenche o array de data de criação
    For i = 1 To UBound(arquivos)
        dataCriacao(i) = arqInfo.GetFile(arquivos(i - 1)).DateCreated
    Next i
    
    ' Classifica os arquivos com base na data de criação (mais recente primeiro)
    For i = 1 To UBound(dataCriacao)
        For j = i + 1 To UBound(dataCriacao)
            If dataCriacao(i) < dataCriacao(j) Then
                ' Troca de posição na lista
                Swap arquivos, i, j
                Swap dataCriacao, i, j
            End If
        Next j
    Next i
    
    ' Mantém apenas os dois arquivos mais recentes
    For i = 3 To UBound(arquivos)
        Kill arquivos(i - 1)
    Next i

End Sub

Sub Swap(ByRef arr As Variant, ByVal index1 As Integer, ByVal index2 As Integer)
    ' Função auxiliar para trocar elementos de posição em um array
    Dim temp As String
    temp = arr(index1)
    arr(index1) = arr(index2)
    arr(index2) = temp
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord