¿Cómo puedo demostrar que una selección de validación de datos de usuario choca con una selección de validación de datos de usuario anterior?

¿Cómo puedo demostrar que una selección de validación de datos de usuario choca con una selección de validación de datos de usuario anterior?

Usar múltiples niveles de listas desplegables, He creado una serie de selecciones de usuario. El usuario selecciona de la primera lista de la izquierda. Luego, dependiendo de la primera selección 'Rol', el usuario puede seleccionar un 'Grupo'. La selección final de 'Artículo' se basa en el 'Grupo'.

Sin embargo, un usuario puede volver a seleccionar un 'Rol' o 'Grupo' diferente que no coincida con el 'Elemento' seleccionado previamente.

¿Existe algún mecanismo para alertar al usuario?inmediatamenteque han introducido estos datos erróneos?

Sé que puedes "encerrar en un círculo" los datos no válidos, pero eso parece requerir que el usuario los revise por sí mismo y los actualice cada vez. Si eso pudiera activarse en cada cambio, sería perfecto.

Respuesta1

Supongamos que configura sus listas de validación de datos en la Hoja 2 y configura su primera validación de datos en Sheet1!A2. Y quería cambiar la validación Sheet1!B2según lo que se seleccionó en Sheet1!A2. Colocarías este código en elmódulo de hoja de trabajo para Hoja1:

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

Luego, configuraría ifdeclaraciones adicionales para cada lista adicional a la que desee agregar validación.

Explicación

Básicamente, esto significa que si hay un cambio en la hoja de trabajo, verifique si está en A2y contiene un valor. Este valor sólo estará dentro de tu hoja de validación de datos. Entonces, si estas cosas son ciertas entonces:

Verifique cada valor posible y luego configure la validación de datos según B2las posibilidades definidas en su lista de validación de datos como se hace referencia.

Amplíe las posibilidades para adaptarlas a sus datos y agregue niveles adicionales para listas adicionales.

información relacionada