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?

1

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

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

Existe um mecanismo para alertar o usuário imediatamente de que eles inseriram esses dados errados?

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

    
por DaveRGP 03.09.2014 / 11:46

1 resposta

1

Digamos que você configure suas listas de validação de dados na Planilha2 e configure sua primeira validação de dados em Sheet1!A2 . E você queria alterar a validação de Sheet1!B2 com base no que foi selecionado em Sheet1!A2 . Você colocaria esse código no mó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 instruções if adicionais para cada lista adicional à qual deseja adicionar validação.

Explicação

Basicamente, isso está dizendo que, se houver uma alteração na planilha, verifique se ela está em A2 e se ela contém um valor. Este valor só estará dentro da sua folha de validação de dados. Então, se estas coisas são verdadeiras então:

Verifique cada valor possível e, em seguida, defina a validação de dados de B2 para as possibilidades definidas na sua lista de validação de dados conforme mencionado.

Expanda as possibilidades de ajustar seus dados e adicione camadas adicionais para listas adicionais.

    
por 09.09.2014 / 13:33