• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri doğrulama daha kısa bir kod

  • Konbuyu başlatan Konbuyu başlatan ikikan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Arkadaşlar kolay gelsin, bu kodun daha kısa olanı veya hızlı çalışanı varmıdır çok fazla veri olunca çok kasıyor, şimdiden teşekkürler..
For i = 11 To SonSatir
Set VeriD = Kitap.Cells(i, 7)

If VeriD = "SATIŞ" Then
With Kitap.Cells(i, 8)
.Validation.Delete
.Validation.Add _
Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="UYG,PRJ,TOB,CE,DGR"
End With
ElseIf VeriD = "TAHSİLAT" Or VeriD = "ALIŞ" Or VeriD = "ÖDEME" Then
With Kitap.Cells(i, 8)
.Validation.Delete
.Validation.Add _
Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="NKT,ÇEK,SNT,FFF,DGR"
End With
End If

If VeriD = "" Then
With Kitap.Cells(i, 8)
.Validation.Delete
.Value = ""
End With
End If
Next i
 
Merhaba; Örnek dosya eklerseniz iyi olacak. Dosyanın orjinali veye orjinaliyle uyumlu bir dosyayı eklerseniz daha kolay yardım edilecektir.
 
Arkadaşlar acaba şu formüldeki liste1 ve liste2 deki bilgileri sayfadan değilde direk vba kod alanına MAKRO olurmu?

Kod:
=EĞER(A:A="SATIŞ";Liste1;Liste2)
 
hızlı olan kod başka arkadaşlara yarar belki
Kod:
If Not Intersect(Target, Range("G11:H" & SonDoluS + 10)) Is Nothing Then
Set VeriD = Cells(Target.Row, 7)
    If VeriD = "SATIŞ" Then
        MyList(0) = "UYG,PRJ,TOB,CE,DGR"
    ElseIf VeriD = "TAHSİLAT" Or VeriD = "ALIŞ" Or VeriD = "ÖDEME" Then
        MyList(0) = "NKT,ÇEK,SNT,FFF,DGR"
    ElseIf VeriD = "" Then
        For i = 11 To SonSatir
            With Cells(i, 8)
                .Validation.Delete
                .Value = ""
            End With
        Next i
    End If
        With Cells(Target.Row, 8).Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, Formula1:=Join(MyList, ",")
        End With
        Else
End If
 
Diger sitelerden bulduğum örnek kodlar
Kod:
Dim MyList(5) As String
MyList(0) = 1
MyList(1) = 2
MyList(2) = 3
MyList(3) = 4
MyList(4) = 5
MyList(5) = 6

With Range("A1").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
         Operator:=xlBetween, Formula1:=Join(MyList, ",")
End With


Kod:
Sub DV_Test()
    Dim ValidationList(5) As Variant, i As Integer

    For i = 0 To UBound(ValidationList)
        ValidationList(i) = i + 1
    Next

    With Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
            Operator:=xlEqual, Formula1:=Join(ValidationList, ",")
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub
 
Geri
Üst