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
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.