Ir ao conteúdo

Excel Localizar ultimo valor repetido


Ir à solução Resolvido por Wendell Menezes,

Posts recomendados

Postado

Boa tarde pessoal, tudo bem?

 

Sou novato em VBA e preciso de uma ajuda para um comando para localizar o ultimo valor de uma serie de valores repetidos em uma coluna de uma tabela e após localizar esse valor inserir uma linha. No exemplo abaixo gostaria de localizar a ultima ocorrência do nome Paulo e abaixo inserir uma linha 

                                A          B         C

1                                         Paulo

2                                         Paulo

3                                         Lucia

4                                         Maria

5                                         Roberto

6                                         Paulo

7                            Linha inserida

  • Solução
Postado

Boa tarde, tudo bem e com você? Experimente esse código:

 

 

Sub INSERT_ROW()

Dim strName     As String
Dim rngLookUp   As Range, rngCell       As Range
Dim i           As Long, j              As Long

strName = Range("D1").Text      'Célula onde está o nome procurado
Set rngLookUp = Range("B:B")    'Coluna onde o nome deverá ser procurado

i = Excel.WorksheetFunction.CountIf(rngLookUp, strName)

If i > 0 Then
    For Each rngCell In rngLookUp
        If strName = rngCell Then
            j = j + 1
        End If
        If i = j Then
            rngCell.Offset(1, 0).EntireRow.Insert
            Exit For
        End If
    Next
End If

End Sub

 

  • Obrigado 1
  • 3 semanas depois...
Postado

@Wendell Menezes  boa tarde,

 

Desculpa reabrir o tópico mas você poderia me explicar o código caso eu queira inserir 2 ou mais linhas onde modifico e como eu faria se a célula onde está o nome procurado for a ultima linha preenchida (eu criei a variável "PriLin = Planilha1.Range("F1048576").End(xlUp).Row ", porém não consegui encaixar no código de forma funcional).

Postado
2 horas atrás, Zamboni_du disse:

... caso eu queira inserir 2 ou mais linhas ...

 

Considerei:

-- lista dos nomes na coluna B a partir de B1, com qualquer quantidade de nomes

-- em D1 o nome a ser procurado

-- em E1 a quantidade de linhas a inserir

 

Sub InsereLinhas()
 Dim c As Range
  Set c = Range("B1:B" & Cells(Rows.Count, 2).End(3).Row).Find([D1], SearchDirection:=xlPrevious, SearchOrder:=xlByRows)
  If Not c Is Nothing Then
   Rows(c.Row + 1).Resize([E1]).Insert
  End If
End Sub

 

  • Obrigado 1

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!