• DİKKAT

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

Veri Doğrulama da uygunsuz veriyi sildirme

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Merhaba arkadaşlar. Yaptğım çalışmaya muadil bir örnek hazırlayarak derdimi anlatmaya çalıştım. Resimde görülen örneğin sınıfı binek araç seçip türü AUDİ işaretledik. Daha sonra SINIF a geri dönüp KAMYONETİ seçince AUDİ nin
o kategoride olmadığı için silinmesini istiyorum. Makro kullanmamak öncelikli tercihim ama yapılamazsa mecbur kullanabilirim.

Nasıl yapılır acaba?

g2g6Mb.jpg
[/url][/IMG]
 
Aynen böyle üstadım. Teşekkür ederim. Pek bulunabilen bir bilgi değildi. Umarım başkalarına da faydalı olur.
 
Üstadım aynı mantıkta aşağı doğru uzayıp giden liste olsa devamın dada diğer satırlarda silmesini istesem ?

EKledim dosyaya
 

Ekli dosyalar

Son düzenleme:
Deneyin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("F2:G" & Rows.Count)) Is Nothing Then Exit Sub
    Select Case Target.Column
        Case 6: Target.Offset(0, 1).Resize(, 2).ClearContents
        Case 7: Target.Next.ClearContents
    End Select
End Sub
 
Üstadım sanırım direk çalışmamdaki kodu versem daha iyi olacak. Olay şöyle

ı2 hücresi değişince buna bağlı "j2,k2,l2,m2,n2,o2,p2,q2,r2,t2,u2" hücreleri siliniyor.
aynı mantıkta;
ı3 silinince "j3,k3,l3,m3,n3,o3,p3,q3,r3,t3,u3"
ı4 silinince "j4,k4,l4,m4,n4,o4,p4,q4,r4,t4,u4"
ı5 silinince ....
ı6 silinince ....

şeklinde aşağı doğru uzayıp gidecek.. Şu an şagıdaki kodla 2. satırda sorunsuz çalışıyor. Devamını getiremedim...

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [ı2]) Is Nothing Then Exit Sub
Range("j2,k2,l2,m2,n2,o2,p2,q2,r2,t2,u2") = ""
End Sub
 
yardım eder misiniz?
 
Deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("I2:I" & Rows.Count)) Is Nothing Then Exit Sub
    If Target.Cells.Count = 1 Then
        Range("J" & Target.Row & ":R" & Target.Row).ClearContents
        Range("T" & Target.Row & ":U" & Target.Row).ClearContents
    Else
        For Each Veri In Selection
            If Veri.Column = 9 Then
                Range("J" & Veri.Row & ":R" & Veri.Row).ClearContents
                Range("T" & Veri.Row & ":U" & Veri.Row).ClearContents
            End If
        Next
    End If
End Sub
 
Korhan Hocam;

Çalışmadı. 2,3,4,5 .......... devam eden ve 15000 .satıra kadar olanlarda çalışmasını da sağlamalıyız.

İlginize teşekkür ederim.. DVD set aldım siteden inş kendimi daha da geliştricem sayenizde.
bu kodla ilk kısmı çözmüştüm aslında.. Gerisi gelmedi

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [j2]) Is Nothing Then Exit Sub
Range("k2,l2,m2,n2,o2,p2,q2,r2,t2,u2") = ""
End Sub
 
Son düzenleme:
Merhaba,

#6 nolu mesajınızda "I" sütunu olarak belirtmiştiniz. Bende ona göre kod önerdim.

Son mesajınızda "J" sütunu olarak belirtmişsiniz. Kodu buna göre revize ettiniz mi?

Ek olarak önerdiğim kodda çoklu seçim yaparak silme işlemi yaptığınızda, veri sayınız çoksa kod biraz bekletecektir.
 
Korhan Hocam teşekkür ederim. Hata bende kodunuzu komple J sutununa göre revize edince sorunsuz oldu. Tekrar Teşekkür ederim :)
 
Geri
Üst