Como posso demonstrar que uma seleção de validação de dados do usuário entra em conflito com uma seleção anterior de validação de dados do usuário?

Como posso demonstrar que uma seleção de validação de dados do usuário entra em conflito com uma seleção anterior de validação de dados do usuário?

Usando vários níveis de listas suspensas, criei uma série de seleções de usuário. O usuário seleciona na primeira lista à esquerda. Então, dependendo da primeira seleção 'Função', o usuário pode selecionar um 'Grupo'. A seleção final de 'Item' é baseada em 'Grupo'.

No entanto, um usuário pode voltar para selecionar uma 'Função' ou 'Grupo' diferente que não corresponda ao 'Item' selecionado anteriormente.

Existe um mecanismo para alertar o usuárioimediatamenteque eles inseriram esses dados errados?

Eu sei que você pode 'circular' dados inválidos, mas isso parece exigir que o usuário os verifique e atualize-os sempre. Se isso pudesse ser acionado em cada mudança, seria perfeito.

Responder1

Digamos que você configure suas listas de validação de dados na Planilha2 e configure sua primeira validação de dados no Sheet1!A2. E você queria alterar a validação Sheet1!B2com base no que foi selecionado no Sheet1!A2. Você colocaria esse código nomódulo de planilha para Sheet1:

Código

Sub worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
    If Target.Value = "one" Then
        With Range("B2").Validation
                 .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Sheet2!B1:B2"
        End With
    End If
    If Target.Value = "two" Then
            With Range("B2").Validation
                 .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Sheet2!B3:B4"
            End With
    End If
    If Target.Value = "three" Then
                With Range("B2").Validation
                     .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Sheet2!B5:B6"
                End With
    End If
End If


End Sub

Em seguida, você configuraria ifinstruções adicionais para cada lista adicional à qual deseja adicionar validação.

Explicação

Basicamente, isso significa que se houver uma alteração na planilha, verifique se está em A2e se contém um valor. Este valor estará apenas na sua planilha de validação de dados. Então, se essas coisas forem verdadeiras, então:

Verifique cada valor possível e defina a validação de dados B2para as possibilidades definidas em sua lista de validação de dados conforme referenciado.

Expanda as possibilidades de ajuste aos seus dados e adicione níveis adicionais para listas adicionais.

informação relacionada