Logo Hardware.com.br
Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas

Identificar dados repetidos na mesma linha

#1 Por Marcelo G Pr... 03/09/2016 - 13:02
Boa tarde galera, como fazer pra identificar se numa mesma linha de dados no excel existem valores (texto e/ou numeros) duplicados.

Preciso excluir as linhas que possuem valores duplicados mas a cabeça nao ta ajudando.

Cada Valor uma celula

Um exemplo Pratico

Marcelo Paulo Roberto Marcelo

Joao Paulo Carlos Davi

Daniel Jose Roberto Roberto

Neste exemplo repetem a primeira e a ultima linha

A ideia seria preencher coluna Q meus dados vao ate a coluna O com um texto que identifique que existem nomes repetidos.
luistoodohard
luistoodohar... Membro Junior Registrado
72 Mensagens 26 Curtidas
#2 Por luistoodohar...
03/09/2016 - 17:46
Olá, no Excel, por enquanto, só há como deletar dados duplicados em colunas.
Luís |rindo_atoa.gifManeiríssimo!|OI tchau.gif| legal.png|boa.gifCerto|Mi mi fá sol... |ideia.png | "A corda sempre arrebenta do lado mais fraco."
Blog: luisfavarocom.blogspot.com.br | esseebomblog648.blogspot.com.br
PC Samsung 275E4E, Windows 8.1 64 bits, CPU AMD E1-1500 1480 MHz, 4 GB de RAM, HD ST500LM012 HN-M5 SATA, placa de vídeo AMD Radeon HD 7310 Graphics | Use o fórum! MP só coisas urgentes.
Basole
Basole Geek Registrado
945 Mensagens 596 Curtidas
#3 Por Basole
03/09/2016 - 19:09
Ola Marcelo veja se consegue adaptar ou envie um modelo.
Ou se preferir pode usar a Funcao.: ex.: -> =Ver_Repetidos(A2 : D2) * Retornará Verdadeiro se tiver repetidos nesta linha.
[code=vb]
Option Explicit

Sub teste()
Dim rng As Range, x As Long

With ThisWorkbook.ActiveSheet
For x = 2 To .Cells(Rows.Count, 1).End(xlUp).Row

Set rng = .Range(.Cells(x, "A"), .Cells(x, "D"))

If Ver_Repetidos(rng) = True Then

MsgBox "linha " & x & " tem repetidos"

End If

Next x
End With

End Sub

Function Ver_Repetidos(rng As Range) As Boolean
Dim i As Long, dic As Variant, v As Variant

Set dic = CreateObject("Scripting.Dictionary")
i = 1

For Each v In rng
If v <> "" Then
v = VBA.Trim(v)
If dic.exists(v) Then Ver_Repetidos = True: Exit Function Else dic.Add v, i
i = i + 1
End If
Next v

End Function

[/code]
Click em Curtir se a resposta foi útil. boa.gif Dê retorno por favor. Se resolveu, atencao_regras.gif Altere o Titulo como [ Resolvido ] comemorando.gif
luistoodohard
luistoodohar... Membro Junior Registrado
72 Mensagens 26 Curtidas
#4 Por luistoodohar...
04/09/2016 - 15:43
Basole disse:
[code=vb]
Option Explicit

Sub teste()
Dim rng As Range, x As Long

With ThisWorkbook.ActiveSheet
For x = 2 To .Cells(Rows.Count, 1).End(xlUp).Row

Set rng = .Range(.Cells(x, "A"), .Cells(x, "D"))

If Ver_Repetidos(rng) = True Then

MsgBox "linha " & x & " tem repetidos"

End If

Next x
End With

End Sub

Function Ver_Repetidos(rng As Range) As Boolean
Dim i As Long, dic As Variant, v As Variant

Set dic = CreateObject("Scripting.Dictionary")
i = 1

For Each v In rng
If v <> "" Then
v = VBA.Trim(v)
If dic.exists(v) Then Ver_Repetidos = True: Exit Function Else dic.Add v, i
i = i + 1
End If
Next v

End Function

[/code]

observe.pngSó que [code=vb]Exit Function[/code] para a execução do código.
Luís |rindo_atoa.gifManeiríssimo!|OI tchau.gif| legal.png|boa.gifCerto|Mi mi fá sol... |ideia.png | "A corda sempre arrebenta do lado mais fraco."
Blog: luisfavarocom.blogspot.com.br | esseebomblog648.blogspot.com.br
PC Samsung 275E4E, Windows 8.1 64 bits, CPU AMD E1-1500 1480 MHz, 4 GB de RAM, HD ST500LM012 HN-M5 SATA, placa de vídeo AMD Radeon HD 7310 Graphics | Use o fórum! MP só coisas urgentes.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal