Çoklu Veri Doğrulama ve Eğerin kullanımı.

Katılım
7 Ekim 2017
Mesajlar
1
Excel Vers. ve Dili
2013 Türkçe
Merhabalar, Excelde

Eğer, C17 hücresi "1040" içerirse, D17 hücresine yazabileceğim en büyük değer 0,44 ve en küçük değer de 0,37 dir. E17 hücresine yazabileceğim en büyük değer 0,4 ve en küçük değer 0'dır. Eğer bu değerlerin dışında değer girirsem excel bana hatalı veri girdiğimi göstersin.

Eğer C17 hücresi "5140" içerirse, D17 hücresine yazabileceğim en büyük değer 0,45 ve en küçük değer de 0,38 dir. E17 hücresine yazabileceğim en büyük değer 0,4 ve en küçük değer 0,1'dir. Eğer bu değerlerin dışında değer girirsem excel bana hatalı veri girdiğimi göstersin.

Bunun gibi veri doğrulama nasıl yapabilirim acaba?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,676
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aşağıdaki kodu sayafnın kdo sayfasına yapıştırıp kullanabilirsiniz.
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [C17]) Is Nothing Then
        If InStr(1, Target, "1040") > 0 Then
            With Target.Offset(, 1).Validation
                .Delete
                .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
                :=xlBetween, Formula1:=0.37, Formula2:=0.44
                .IgnoreBlank = True
                .InCellDropdown = True
                .ErrorMessage = "0,37 - 0,44 arasında değer girilmelidir"
                .ShowInput = True
                .ShowError = True
            End With
            With Target.Offset(, 2).Validation
                .Delete
                .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
                :=xlBetween, Formula1:=0#, Formula2:=0.4
                .IgnoreBlank = True
                .InCellDropdown = True
                .ErrorMessage = "0,0 - 0,4 arasında değer girilmelidir"
                .ShowInput = True
                .ShowError = True
            End With
        ElseIf InStr(1, Target, "5040") > 0 Then
            With Target.Offset(, 1).Validation
                .Delete
                .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
                :=xlBetween, Formula1:=0.38, Formula2:=0.45
                .IgnoreBlank = True
                .InCellDropdown = True
                .ErrorMessage = "0,38 - 0,45 arasında değer girilmelidir"
                .ShowInput = True
                .ShowError = True
            End With
            With Target.Offset(, 2).Validation
                .Delete
                .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
                :=xlBetween, Formula1:=0.1, Formula2:=0.4
                .IgnoreBlank = True
                .InCellDropdown = True
                .ErrorMessage = "0,1 - 0,4 arasında değer girilmelidir"
                .ShowInput = True
                .ShowError = True
            End With
        Else
        Target.Offset(, 1).Validation.Delete
        Target.Offset(, 2).Validation.Delete
        End If
    End If
End Sub
 
Üst