Desenvolvimento - Office
Excel: Como verificar se existe valores duplicados
por Eduardo Andrade
Parte I (Funções)
Neste artigo mostrarei uma forma interessante de como achar Dados Duplicados em uma seqüência de células, porém, não é o único, mas ajuda. Vejam abaixo como será feito:
Na Coluna B coloquei algumas datas inclusive duplicadas;
Na Coluna C foram simulados alguns nomes de clientes;
Na Coluna D a Data e o Nome de cada cliente foram concatenados (unidas) com a Função: =B2&C2. Onde & serve para concatenar (unir); e
Na Coluna F foi feito a Função do Status, para saber se há duplicação, veja a Função: =SE(CONT.SE($D$2:D2;D2)>1;"Duplicado";"Único").
Parte II (Validação de Dados)
Na parte anterior foi visto uma forma de se encontrar Duplicados pela função, porém, nesta será pela Validação de Dados, veja nas figuras abaixo:

Assim que a pessoa digitar na célula que está com as bordas vermelhas, aparecerá uma mensagem dizendo que a o Pedido já existe, para isso antes de qualquer coisa selecione todas as células da seqüência neste caso da célula B3:B11, Clique no Menu Dados – Opção Validação e veja na figura abaixo:
Assim que abrir a Caixa de Validação de Dados, configure conforme a figura acima, em Permitir escolha Personalizado e em Fórmula digite a seguinte fórmula =CONT.SE(B$3:B$11; B3) = 1
Explicação da Função: (Essa função quis dizer que caso o valor que for digitado da B3 para baixo for igual a 1, isso quer dizer caso já exista, não será possível inserir o valor.)
Depois de ter configurado que os valores não podem ser Duplicados, vamos configurar uma Mensagem de Erro, para isso veja a figura abaixo:
Veja que para configurar uma Mensagem de erro, deve-se clicar a Guia
– Alerta de Erro, depois digite o Título e a Mensagem de Erro
como achar melhor, e clique em OK.
Pronto, Validação de Dados configurada. Veja agora na Planilha.
Este é mais um exemplo de como impedir que digitem alguma informação Duplicada,
caso tenha alguma outra forma, podem me enviar.
Parte III (Formatação Condicional)
Nas partes anteriores foram vistos outras duas formas de se encontrar Duplicados pela função, porém, nesta será pela Formatação Condicional, veja nas figuras abaixo:
Assim que a pessoa digitar na célula que está com as bordas vermelhas e pressionar a tecla ENTER, o valor ficará com a cor Laranja indicando que o já existe, para isso antes de qualquer coisa selecione todas as células da seqüência neste caso da célula B3:B11, Clique no Menu Formatar – Opção Formatação Condicional e veja na figura abaixo:

Assim que abrir a Caixa de Formatação Condicional, configure conforme a figura acima, em Condição 1 a opção A Fórmula é e digite ao lado a seguinte Fórmula =CONT.SE($B$3:$B$11; B3) = 1
Explicação da Fórmula: (Essa função quis dizer que caso o valor que for digitado da B3 para baixo for igual a 1, isso quer dizer caso já exista, não será possível inserir o valor.)
Depois de ter configurado que os valores não podem ser Duplicados, vamos fazer os testes. Clique no Botão OK e pronto, a tabela já pode ser utilizada, veja na figura abaixo como fica o resultado caso seja Repetido.
Este foi mais um exemplo de como Impedir a Digitação de Dados Duplicados, caso tenha alguma outra forma podem me enviar.
Parte IV (VBA)
Esta é a quarta (e última) parte desta série, nas partes anteriores foram vistos outras duas formas de se encontrar Duplicados pela função, porém, neste será por Programação VBA, veja nas figuras abaixo:

Em uma nova planilha, abra o editor Microsoft Visual Basic (Aperte Alt + F11).
No lado esquerdo da janela que se abrirá, clique duas vezes na planilha onde você deseja aplicar o código (neste exemplo estarei aplicando na Plan3).

Assim que clicar duas vez na Planilha
desejada, copie o código abaixo na
área branca a direita como na figura acima:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error Resume Next
Dim
nLinComp As Integer, nLinFim As Integer " => declara
nLinha como Inteiro
Dim Resp As String
nLinFim
= 3 "=> define qual será a linha onde inicia-se os dados
para achar o final da lista
Do While Not IsEmpty(Cells(nLinFim, 2)) "=> irá
comparar enquanto a célula não estiver vazia
nLinFim = nLinFim + 1 "=> adiciona uma linha para
baixo
Loop
nLinComp = 3 "=> define qual será a linha que inicia-se
os dados para a comparação dos dados
Do While nLinComp <= nLinFim - 2 "=> irá fazer
enquanto tiver Valor digitado
If Cells(nLinFim - 1, 2).Value = Cells(nLinComp, 2).Value Then
"=> se o último Valor digitado for repetido, irá para o processo abaixo
Cells(nLinFim - 1, 2).Activate "=> ativa a célula
do Valor digitado incorretamente.
Resp = MsgBox("O Valor " & """ & ActiveCell & """ & " já consta
na planilha." & _
vbCrLf & vbCrLf & "Este
Valor será Excluido !", vbCritical, " Valor !") "=>
exibe a mensagem
Cells(nLinFim - 1, 2).ClearContents "=> Exclui
o Valor digitado caso seja repetido
Exit Sub
Else
nLinComp = nLinComp + 1 "=> compara o próximo
Valor da lista
End If
Loop
Cells(nLinComp + 1, 2).Activate "=> Se não encontrar
mais valores repetidos, ativa a célula subsequente
End Sub
P.S.: O texto que está em verde,
é um texto de comentário, isso é
não será executado pela
Linguagem VBA, para colocar algum texto como
comentário é só colocar o acento Apóstrofe (‘) antes do texto
que deseja comentar.
Agora Vamos fazer o teste para ver como fica o resultado na planilha, veja abaixo:

Após clicar no Botão OK, o resultado será esse abaixo:

O Valor repetido é excluído automaticamente.
Este artigo foi o último da série “Como verificar se Existe valores Duplicados”, mas, caso alguém tenha uma outra forma, é só me enviar.
Por: Eduardo Andrade
- Data Bars para MS-AccessAccess
- Funcionalidades do Office usando Visual Studio for Office – Parte 3C#
- Funcionalidades do Office usando Visual Studio for Office - Parte 2C#
- Estenda as funcionalidades do Office com o Visual Studio for OfficeC#
- Como evitar processos pendurados na automação do ExcelOffice








