Dois validação de dados na mesma célula

0

Pergunta

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)

insira a descrição da imagem aqui

database datatable excel formula
2021-11-23 14:14:08
1

Melhor resposta

-1

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.

2021-11-23 23:24:43

Obrigado!! Eu estava pensando em algo assim. Vou tentar. Obrigado novamente!
Henrique Monteiro

@HenriqueMonteiro, não é trabalho para você?
Skin

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................