Ir ao conteúdo
  • Cadastre-se

Excel Selecionar Ultimas Linhas preenchidas de coluna #VBA


Posts recomendados

 

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.

Link para o comentário
Compartilhar em outros sites

@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

Link para o comentário
Compartilhar em outros sites

@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

 

Link para o comentário
Compartilhar em outros sites

@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.

Link para o comentário
Compartilhar em outros sites

@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

 

Link para o comentário
Compartilhar em outros sites

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...