
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:
- clique com o botão direito no nome da guia próximo à parte inferior da janela do Excel
- selecione Ver código - isso abre uma janela VBE
- 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:
- abra as janelas VBE como acima
- limpar o código
- 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!