Eu preciso fazer uma validação de dados para o usuário não misstype a informação que vai para o banco de dados. As informações da célula deve ser preenchido com dois critérios, a primeira parte é o trabalhador do estado, e segundo informações logo após na mesma célula de contrato o código que ele está trabalhando. Como posso fazer uma validação de dados com informações dispostas em dois diferentes tabelas? Eu tentei algo como =E(à ESQUERDA(K3:Q999;4)=S3:S13;DIREITO(K3:Q999;2)=S15:S49)
Tudo depende de como você deseja aplicar na validação.
Se você quer ser na célula em uma lista suspensa, em seguida, padrão de validação só funciona se você tiver, para cada combinação possível de um intervalo, por exemplo ...
19Exec
19Folg
19Disp
...
33Exec
33Folg
33Disp
...
etc.
Se desejar, você pode fazer isso usando o VBA. Uma palavra de cautela, porém, isso irá invalidar a pilha de desfazer e provavelmente precisará ser aperfeiçoado para garantir que ele atende a todos os cenários. É mais uma opção, porém.
Você precisará alterar esse código para atender você. É esqueleto e trabalha em um sentido básico.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngIntersect As Range, objCell As Range, strPrefix As String, strSuffix As String
Dim lngIndexSuffix As Long, lngIndexPrefix As Long
' Safety net, remove if you think this won't be a problem.
If Target.Cells.Count > 1000 Then Exit Sub
For Each objCell In Target
Set rngIntersect = Application.Intersect(objCell, Range("ValidationRange"))
If Not rngIntersect Is Nothing Then
If Len(objCell.Text) = 0 Then
' Only continue if the cell isn't empty.
Target.Interior.ColorIndex = -4142
Else
strSuffix = Right(objCell.Text, 4)
strPrefix = Mid(objCell.Text, 1, Len(objCell.Text) - Len(strSuffix))
Err.Clear
On Error Resume Next
lngIndexPrefix = WorksheetFunction.Match(CInt(strPrefix), Range("Range1"), 0)
lngIndexSuffix = WorksheetFunction.Match(strSuffix, Range("Range2"), 0)
If Err.Description <> "" Then
Target.Interior.Color = 255
Else
Target.Interior.ColorIndex = -4142
End If
On Error GoTo 0
End If
End If
Next
End Sub
Para fazer esse trabalho, crie um intervalo nomeado mais de ambas as colunas de chave em suas tabelas de pesquisa. Os números (por exemplo, 19, 33, 43, etc.) Eu a chamei de "Range1" e o 4 palavras de caracteres (por exemplo, Exec, Folg, Disp, etc.) Eu a chamei de "Range2".
Para o intervalo de células que você deseja executar a verificação de validação para, me chama que "ValidationRange".
Jogar que o macro da planilha que tem o intervalo que você deseja validar e ver como ele vai.