Como Localizar Nomes Repetidos no Excel Vba

Existem várias maneiras de localizar nomes repetidos no Excel VBA, mas aqui está um exemplo simples usando a função COUNTIF.

Suponha que você tenha uma lista de nomes na coluna A, começando na célula A2, e queira encontrar os nomes que se repetem. Você pode fazer o seguinte:

  1. Defina uma variável para o intervalo de células que contém os nomes:

Dim nomeRange As Range Set nomeRange = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

Essa variável é definida para a coluna A, começando na linha 2 e terminando na última linha preenchida da coluna A.

  1. Defina uma matriz para armazenar os nomes repetidos:

Dim repetidos() As String ReDim repetidos(1 To nomeRange.Cells.Count, 1 To 1)

Nessa matriz, cada elemento corresponderá a uma célula no intervalo de nomes.

  1. Percorra as células do intervalo de nomes e, para cada célula, verifique se o nome aparece mais de uma vez usando a função COUNTIF:

Dim i As Long, j As Long For i = 1 To nomeRange.Cells.CountIf WorksheetFunction.CountIf(nomeRange, nomeRange.Cells(i)) > 1 Then j = j + 1 repetidos(j, 1) = nomeRange.Cells(i)End If Next i

Se um nome aparecer mais de uma vez, ele é adicionado à matriz de nomes repetidos.

  1. Exiba os nomes repetidos em uma mensagem ou em uma planilha:

If j = 0 ThenMsgBox "Não há nomes repetidos." ElseMsgBox "Os seguintes nomes aparecem mais de uma vez:" & vbNewLine _ & Join(Application.Transpose(repetidos), vbNewLine) End If

Se não houver nomes repetidos, uma mensagem é exibida informando isso. Caso contrário, uma mensagem é exibida com uma lista dos nomes repetidos separados por quebras de linha. Você também poderia exibir essa lista em uma planilha, se quisesse.

Esse é apenas um exemplo básico, e existem muitas maneiras de aprimorá-lo ou torná-lo mais eficiente, dependendo da sua situação específica. Mas espero que isso lhe dê uma ideia de como localizar nomes repetidos no Excel VBA.

Veja também mais Como Fazer com a letra C

Comentários