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!B2
com 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 if
instruçõ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 A2
e 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 B2
para 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.