Aynı hücrede iki veri doğrulama

0

Soru

Kullanıcının veri bankasına giden bilgileri yanlış yazmaması için bir veri doğrulaması yapmam gerekiyor. Hücredeki bilgiler iki ölçütle doldurulmalıdır, ilk bölüm işçi statüsüdür ve aynı hücreden hemen sonraki ikinci bilgi üzerinde çalıştığı sözleşme kodudur. İki farklı tabloda yer alan bu iki bilgiyle veri doğrulamasını nasıl yapabilirim? =VE(SOL(K3:Q999;4)=S3:S13;SAĞ(K3:Q999;2)=S15:S49)gibi bir şey denedim

resim açıklamasını buraya girin

database datatable excel formula
2021-11-23 14:14:08
1

En iyi cevabı

-1

Her şey doğrulamayı nasıl uygulamak istediğinize bağlı.

Bir açılır pencerede hücrede olmasını istiyorsanız, standart doğrulama yalnızca kendi aralığında mümkün olan her kombinasyona sahipseniz çalışır, örn ...

19Exec
19Folg
19Disp
...
33Exec
33Folg
33Disp
... 
etc.

İsterseniz, bunu her zaman VBA kullanarak yapabilirsiniz. Yine de dikkatli olun, bu geri alma yığınını geçersiz kılacak ve tüm senaryolara hitap etmesini sağlamak için büyük olasılıkla rafine edilmesi gerekecektir. Yine de çok fazla bir seçenek.

Bu kodu size uyacak şekilde değiştirmeniz gerekiyor. Çıplak kemikler ve temel anlamda işe yarıyor.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngIntersect As Range, objCell As Range, strPrefix As String, strSuffix As String
    Dim lngIndexSuffix As Long, lngIndexPrefix As Long
    
    ' Safety net, remove if you think this won't be a problem.
    If Target.Cells.Count > 1000 Then Exit Sub
    
    For Each objCell In Target
        Set rngIntersect = Application.Intersect(objCell, Range("ValidationRange"))
        
        If Not rngIntersect Is Nothing Then
            If Len(objCell.Text) = 0 Then
                ' Only continue if the cell isn't empty.
                Target.Interior.ColorIndex = -4142
            Else
                strSuffix = Right(objCell.Text, 4)
                strPrefix = Mid(objCell.Text, 1, Len(objCell.Text) - Len(strSuffix))

                Err.Clear
                
                On Error Resume Next
                
                lngIndexPrefix = WorksheetFunction.Match(CInt(strPrefix), Range("Range1"), 0)
                lngIndexSuffix = WorksheetFunction.Match(strSuffix, Range("Range2"), 0)
                
                If Err.Description <> "" Then
                    Target.Interior.Color = 255
                Else
                    Target.Interior.ColorIndex = -4142
                End If
                
                On Error GoTo 0
            End If
        End If
    Next
End Sub

Bunun çalışması için, arama tablolarınızdaki her iki anahtar sütunun üzerinde adlandırılmış bir aralık oluşturun. Sayılar (yani 19, 33, 43, vb.) "Range1" ve 4 karakter kelimesini (örneğin Exec, Folg, Disp, vb.) Adlandırdım.) "Range2" adını verdim.

Doğrulama denetimini çalıştırmak istediğiniz hücre aralığı için buna "ValidationRange" adını verdim.

Bu makroyu doğrulamak istediğiniz aralığa sahip çalışma sayfasına atın ve nasıl gittiğini görün.

2021-11-23 23:24:43

Teşekkürler!! Böyle bir şey düşünüyordum. Deneyeceğim. Tekrar teşekkür ederim!
Henrique Monteiro

@HenriqueMonteiro, senin için işe yaradı mı?
Skin

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................