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
#59266
Fala galera, sou novo aqui e estou desesperado por uma ajuda.

Preciso que apague os registros mais antigos de uma lista de várias viagens, mantendo apenas o mais recente deles. O print abaixo deixa mais claro.

Imagem

Neste caso eu precisaria que os do dia 21/09 e 23/09 fossem apagados, restando apenas os do dia 26/09. O problema é que tem repetições nas placas e que, se forem do mais recentes, precisam ser mantidas.

Ajudem um universitário desesperadoooo :(
#59278
Boas veja se é isto que deseja. :D

Ficheiro anexado.
Você não está autorizado a ver ou baixar esse anexo.
#59279
Foi por muito pouco kkkk, mas ainda quando executo a macro fica apenas 1 valor do mais recente, onde deveria estar 3 valores. Vou explicar por imagens.

O que está em vermelho é o que eu preciso que seja mantido na planilha:
Imagem
https://ibb.co/Qb8JyMr

Isto é o que está acontecendo com a execução da macro:
Imagem
https://ibb.co/XL4vgSL

Mas mesmo assim ficou muito bom, e esta questão de datas eu não estou conseguindo fazer :(
#59280
Assim está melhor? :D
Você não está autorizado a ver ou baixar esse anexo.
#59295
Fiz com matrizes, mas dá para fazer também com autofiltro, filtro avançado,. Dá tranquilamente para usar o PowerQuery também.
Código: Selecionar todos
Public Sub Teste()
    Dim vrtDados            As Variant
    Dim vrtFilt()           As Variant
    Dim datData             As Date
    Dim lngUltLin           As Long
    Dim lngCont             As Long
    Dim lngCol              As Long
    Dim lngDataMax          As Long
    Dim lngFilt             As Long
    
    With wshPLan
        lngUltLin = .Cells(.Rows.Count, 1).End(xlUp).Row
        
        vrtDados = .Range("A2:C" & lngUltLin).Value2
        
        datData = Application.WorksheetFunction.Max(.Range("A1:A" & lngUltLin))
        
        lngDataMax = Application.WorksheetFunction.CountIf(.Range("A1:C" & lngUltLin), _
                                                            datData)
                                                            
        ReDim vrtFilt(1 To lngDataMax, 1 To UBound(vrtDados, 2)) As Variant
        
        lngFilt = 0
        For lngCont = LBound(vrtDados, 1) To UBound(vrtDados, 1)
            If vrtDados(lngCont, 1) = datData Then
                lngFilt = lngFilt + 1
                For lngCol = 1 To UBound(vrtFilt, 2)
                    vrtFilt(lngFilt, lngCol) = vrtDados(lngCont, lngCol)
                Next lngCol
            End If
        Next
        
        .Range("A2:C" & lngUltLin).ClearContents
        
        .Range("A2:C" & lngFilt + 1).Value = vrtFilt
    End With
End Sub
Você não está autorizado a ver ou baixar esse anexo.
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