Bir kullanıcı veri doğrulama seçiminin önceki bir kullanıcı veri doğrulama seçimiyle çakıştığını nasıl gösterebilirim?


1

Birden fazla açılır liste listesi kullanarak bir dizi kullanıcı seçimi oluşturdum. Kullanıcı soldaki ilk listeden seçim yapar. Ardından, ilk seçim olan 'Rol' seçeneğine bağlı olarak, kullanıcı bir 'Grup' seçebilir. Son “Öğe” seçimi, “Grup” a dayanmaktadır.

Bununla birlikte, bir kullanıcı daha önce seçilen 'Öğe' ile eşleşmeyen farklı bir 'Rol' veya 'Grup' seçmek için geri dönebilir.

Kullanıcıyı bu hatalı verilere girdiği konusunda hemen uyaran bir mekanizma var mı?

Geçersiz verileri 'döndürebildiğinizi' biliyorum, ancak bu kullanıcının kontrol etmesini ve her seferinde yenilemesini gerektiriyor. Bu her değişiklikte tetiklenebilirse, mükemmel olurdu.


Birincinin seçilmesiyle ikinci açılır menü seçeneklerini tanımlamaya ne dersiniz? İlk etkinleştiğinde, gerisini temizleyin ve seçenekleri sıfırlayın.
Raystafarian

Bunu nasıl yaparım?
DaveRGP

Yanıtlar:


1

Veri doğrulama listelerinizi Sayfa2'de kurduğunuzu ve ilk veri doğrulama işleminizi kurduğunuzu varsayalım Sheet1!A2. Ve Sheet1!B2neyin seçildiğine bağlı olarak geçerliliğini değiştirmek istediniz Sheet1!A2. Bu kodu Sayfa1'deki çalışma sayfası modülüne yerleştirirsiniz :

kod

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

Ardından, ifdoğrulama eklemek istediğiniz her ek liste için ek ifadeler hazırlarsınız.

açıklama

Temel olarak bu, eğer çalışma sayfasında bir değişiklik olursa, olup olmadığını A2ve bir değer içerip içermediğini kontrol edin . Bu değer yalnızca veri doğrulama sayfanızda olacaktır. Öyleyse eğer bu şeyler doğruysa:

Her bir olası değeri kontrol edin ve ardından veri doğrulama B2işlemini, başvuru yaptığınız gibi veri doğrulama listenizde tanımlanan olanaklara ayarlayın .

Verilerinize uyacak olasılıkları genişletin ve ek listeler için ek katmanlar ekleyin.


Üzgünüm, sadece bunu gördüm. Telaşlılık, bunu birkaç gün boyunca test edemeyeceğim anlamına gelir, yaptığım zaman bunun benim için işe yarayıp yaramadığını açıkça göreceğim. Yine de nasıl yöneteceğime emin değilim. Cevabın şimdilik doğru olduğunu kabul edeceğim ve bu şekilde işaretleyeceğim.
DaveRGP
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.