Wie kann ich nachweisen, dass eine Auswahl zur Benutzerdatenüberprüfung mit einer vorherigen Auswahl zur Benutzerdatenüberprüfung kollidiert?

Wie kann ich nachweisen, dass eine Auswahl zur Benutzerdatenüberprüfung mit einer vorherigen Auswahl zur Benutzerdatenüberprüfung kollidiert?

Verwenden mehrerer Ebenen von Dropdown-Listen, ich habe eine Reihe von Benutzerauswahlen erstellt. Der Benutzer wählt aus der ersten Liste links aus. Dann kann der Benutzer abhängig von der ersten Auswahl „Rolle“ eine „Gruppe“ auswählen. Die endgültige „Element“-Auswahl basiert auf „Gruppe“.

Ein Benutzer kann jedoch dann zurückgehen und eine andere „Rolle“ oder „Gruppe“ auswählen, die nicht mit dem zuvor ausgewählten „Element“ übereinstimmt.

Gibt es einen Mechanismus, um den Benutzer zu warnen?sofortdass sie diese fehlerhaften Daten eingegeben haben?

Ich weiß, dass man ungültige Daten „einkreisen“ kann, aber das erfordert anscheinend, dass der Benutzer sie selbst überprüft und jedes Mal aktualisiert. Wenn dies bei jeder Änderung ausgelöst werden könnte, wäre das perfekt.

Antwort1

Angenommen, Sie haben Ihre Datenüberprüfungslisten auf Blatt2 eingerichtet und Ihre erste Datenüberprüfung auf Sheet1!A2. Und Sie möchten die Überprüfung auf der Grundlage dessen ändern, Sheet1!B2was in ausgewählt wurde Sheet1!A2. Sie würden diesen Code in das Feld einfügen.Arbeitsblattmodul für Sheet1:

Code

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

Anschließend richten Sie zusätzliche ifAnweisungen für jede weitere Liste ein, der Sie eine Validierung hinzufügen möchten.

Erläuterung

Im Grunde bedeutet dies, dass Sie bei einer Änderung im Arbeitsblatt prüfen, ob diese A2einen Wert enthält. Dieser Wert befindet sich nur in Ihrem Datenüberprüfungsblatt. Wenn diese Dinge also zutreffen, dann gilt:

Überprüfen Sie jeden möglichen Wert und stellen Sie dann die Datenüberprüfung B2auf die in Ihrer Datenüberprüfungsliste definierten Möglichkeiten ein, wie referenziert.

Erweitern Sie die Möglichkeiten passend zu Ihren Daten und fügen Sie zusätzliche Ebenen für zusätzliche Listen hinzu.

verwandte Informationen