Valide se uma combinação de células é única em uma linha no Excel

Valide se uma combinação de células é única em uma linha no Excel

Tenho uma planilha Excel onde 3 colunas (A, B e C) formam um identificador exclusivo para cada linha, mas os valores nas colunas não são exclusivos. Por exemplo:

   ABC    REF   001
   ABC    REF   002
   ABC    REF   003
   ABC    DOC   001
   ABC    DOC   002
   ABC    DOC   003

As linhas acima são válidas porque nenhuma linha possui a mesma combinação de valores (por exemplo, não existem duas linhas com "ABC REF002" mesmo que existam duplicatas das colunas B e C)

Como posso adicionar uma validação do Excel de forma que, se o usuário inserir uma combinação de valores nas colunas A, B e C que corresponda à combinação de outra linha, ocorra um erro de validação?

Responder1

Insira a seguinte macro de evento na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long, st As String, J As Long, k As Long
    Dim CH As String

    If Intersect(Range("A:C"), Target) Is Nothing Then Exit Sub
    CH = Chr(1)
    I = Target.Row
    J = Cells(Rows.Count, 1).End(xlUp).Row
    st = Cells(I, 1).Text & CH & Cells(I, 2).Text & CH & Cells(I, 3).Text

    For k = 1 To J
        If k <> I Then
            stk = Cells(k, 1).Text & CH & Cells(k, 2).Text & CH & Cells(k, 3).Text
            If st = stk Then
                MsgBox "Combination already in use:" & vbCrLf & stk
                Exit Sub
            End If
        End If
    Next k

End Sub

Por ser um código de planilha, é muito fácil de instalar e automático de usar:

  1. clique com o botão direito no nome da guia próximo à parte inferior da janela do Excel
  2. selecione Ver código - isso abre uma janela VBE
  3. cole o material e feche a janela do VBE

Se você tiver alguma dúvida, primeiro experimente em uma planilha de teste.

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como.xlsmem vez de.xlsx

Para remover a macro:

  1. abra as janelas VBE como acima
  2. limpar o código
  3. feche a janela do VBE

Para saber mais sobre macros em geral, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

e

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Para saber mais sobre macros de eventos (código de planilha), consulte:

http://www.mvps.org/dmcritchie/excel/event.htm

As macros devem estar habilitadas para que isso funcione!

informação relacionada