Ir ao conteúdo

Posts recomendados

Postado

 

Bom dia Pessoal, uma duvida que estou tendo para adaptar a minha rotina aqui.

Poderiam me informar um código onde Selecione os últimos 7 dados preenchidos na coluna C?

É uma coluna com mais de 100 dados, mas preciso selecionar somente os últimos 7 delas, estes últimos valores podem estar em variadas posições, não necessariamente estarão sempre na mesma célula…

No que puderem me ajudar agradeço desde já.

Anderson.

Postado

@Midori Funcionou aqui! Só que verifiquei que preciso as vezes aplicar um filtro de produtos, e neste caso ficam visíveis as linhas de determinados produtos nas suas variadas células, e quando aplico essa regra ele seleciona apenas a ultima célula, tem como usar esse código mas que selecione as ultimas células "visíveis"?

 

 

Sem título.png

Postado

@anders1405  O ideal seria trabalhar apenas com as células visíveis da coluna, talvez algo com SpecialCells(xlCellTypeVisible), mas assim também dá certo,

 

Sub Macro()
    Dim I, L, N, A As Integer
    
    I = [C2].End(xlDown).Row
    L = I
    N = I
    
    Do Until (I - L) = 7 Or (I - A) < 2
        If Cells(I - A, 3).EntireRow.Hidden = False Then
            L = L - 1
            N = Cells(I - A, 3).Row
        End If
            A = A + 1
    Loop
    
    Range(Cells(I, 3), Cells(N, 3)).Select
End Sub

 

Postado

@Midori @Midori ficou top, aproveitei ela totalmente em outra rotina que eu estava buscando também, porém para este caso ela seleciona apenas os 7 ultimos visiveis, na verdade se fosse possivel eu queria que selecionasse todos onde na coluna B de data sejam até 7 dias antes o dia de hoje, porém as vezes possuem mais de uma entrada na mesma data, então não poderia ser as sete ultimas linhas... teria que ser os ultimos onde a data sejam até 7 dias antes hoje. Meio confuso, mas ficaria perfeito.

 

Grato pela ajuda.

 

Anderson.

Postado

@anders1405  Sem considerar células filtradas e datas repetidas,

 

Sub Macro()
    Dim L, I, D As Integer
    Dim V()     As String
    
    I = [B2].End(xlDown).Row
    
    Do While L < 7 And I > 2
        D = Now - Cells(I, 2)
        If D > 1 And D <= 8 Then
            ReDim Preserve V(L)
            V(L) = Cells(I, 2).Address
            L = L + 1
        End If
            I = I - 1
    Loop
    
    If L > 0 Then Range(Join(V, ",")).Select
End Sub

 

Postado

@Midori quase isso, porém ele esta selecionando somente 7 linhas, se possivel eu gostaria que selecionasse todas onde a data fosse até 7 dias antes a data de hoje.

 

Anderson.

Postado

@anders1405 Para selecionar todos tire a condição L < 7 do loop, mas dependendo da quantidade de linhas essa forma de seleção pode falhar. Acho melhor usar o Auto Filtro e selecionar os dados da filtragem.

Postado

@Midori Perfeito! Obrigado.

 

Poderia me ajudar em mais algo?

 

Precisava de um código para filtrar itens entre datas, a data inicial esta na D2 e a final na E2. Te agradeço..

 

Anderson

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!