• DİKKAT

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

Satır silme

1903emre34@gmail.com

Altın Üye
Katılım
29 Mayıs 2016
Mesajlar
946
Excel Vers. ve Dili
Microsoft Excel 2013 Türkçe
Merhaba,

Yevmiye madde numarasında takip etmektedir; aynı yevmiye numarasında ana hesap sütünda 850,258,150,800 kayıtlar varsa satırlarda silinmesi istiyorum nasıl kod oluşturabiliriz (istenen sayfa 2'de yapılmıştır)
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Yevmiye madde numarasında takip etmektedir; aynı yevmiye numarasında ana hesap sütünda 850,258,150,800 kayıtlar varsa satırlarda silinmesi istiyorum nasıl kod oluşturabiliriz (istenen sayfa 2'de yapılmıştır)

Verdiğiniz örnek dosyada, madde numarasına bakmadan 800,150,258 leri silmek sonuca ulaştırıyor.

3 de 800 olsaydı silinmeyecek miydi.

2 de 770 olsaydı bu kayıt silinecek mi?
 
1000-1500 aralığında satır bulunmaktadır,

3 ve 2 numaralı yevmiye kayıtlarda;850,258,150,800 olsa silinir, belirtilen hesap kodlar dışında kayıt silinmez
 
1000-1500 aralığında satır bulunmaktadır,

3 ve 2 numaralı yevmiye kayıtlarda;850,258,150,800 olsa silinir, belirtilen hesap kodlar dışında kayıt silinmez

Bu durumda madde numrasına neden bakılıyor onu anlayamadım.
Direkt hesap kodu üzerinden kontrol sağlanamaz mı?
 
Demek istediğim şey bu şekilde, deneyiniz.

Kod:
Sub ozel_hesap_sil()
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   buldu = False
   For i = sonsatir To 1 Step -1
     hesap = Cells(i, "C").Value
     yevmiye = Cells(i, "B").Value
     If i = sonsatir Then
        eskiyevmiye = yevmiye
        sayozel = 0
        saynormal = 0
        altsatir = i
     End If
     
     If yevmiye <> eskiyevmiye Then
        If saynormal = 0 Then
          For j = altsatir To i + 1 Step -1
             Rows(j).Delete
          Next j
          altsatir = i
       Else
          altsatir = i
       End If
       i = i + 1
       sayozel = 0
       saynormal = 0
       GoTo son
     End If
     
     If hesap = 150 Or hesap = 258 Or hesap = 800 Or hesap = 850 Then
        sayozel = sayozel + 1
     Else
        saynormal = saynormal + 1
     End If
son:
     eskiyevmiye = yevmiye

   Next i
End Sub
 
Son düzenleme:
Üstad,

Yevmiye madde numarası dikkate almasında sebep olarak, 890 hesabı başka hesap kodlarla (770,191,320) birlikte yer alıyor, kodları çalıştırdığımız zaman bahsettiğimiz yevmiye madde numarasında 890 hesap olan satır siliyor, madde numara bütünlüğü bozuyor dosyayı güncelledim, örnekleme yaptım. Örneğin, yevmiye madde numarası 4 olarak (orginal sayfa1 yer alıyor) kodları çalıştırdığımız zaman 890 hesabı satırda siliyor aynen sayfa3'deki gibidir.
 
Eklediğiniz dosyaya göre almak istediğiniz sonuç hangisi?
 
"3 ve 2 numaralı yevmiye kayıtlarda;850,258,150,800 olsa silinir, belirtilen hesap kodlar dışında kayıt silinmez"

Ben bu cümleden şunu anlıyorum:
3 ve 2 numaralı yevmiye kayıtlarında 850,258,150,800 kayıtları silinir. Bunların dışındakiler silinmez.

Siz bunu mu demek istediniz:
Kural 1: 1- 3 ve 2 numaralı yevmiye numaralı satırların herhangi birinde 850,258,150,800 kayıtları var ise o yevmiye ye ait tüm kayıtlar silinir.
o yevmiyeye ait kayıtların içinde bu hesap kodlarından 850,258,150,800 farklı hesaplar var ise onlarda silinir.

Kural 2: 3 ve 2 numaralı yevmiye numaralı satırların herhangi birinde 850,258,150,800 kayıtları yok ise o yevmiye ye ait kayıtların hiç biri silinmez.


890 nedir 800 yada 850 mi demek istediniz.
 
Son anladığım şekli ile kodu güncelledim. :)
Kontrol ediniz.
 
"3 ve 2 numaralı yevmiye kayıtlarda;850,258,150,800 olsa silinir, belirtilen hesap kodlar dışında kayıt silinmez"

Ben bu cümleden şunu anlıyorum:
3 ve 2 numaralı yevmiye kayıtlarında 850,258,150,800 kayıtları silinir. Bunların dışındakiler silinmez.

Siz bunu mu demek istediniz:
Kural 1: 1- 3 ve 2 numaralı yevmiye numaralı satırların herhangi birinde 850,258,150,800 kayıtları var ise o yevmiye ye ait tüm kayıtlar silinir.
o yevmiyeye ait kayıtların içinde bu hesap kodlarından 850,258,150,800 farklı hesaplar var ise onlarda silinir.

]Herhangi birinde değil, aynı yevmiye kayıt numarasında (1-1,2-2, vs) 850,258, 150,800 kayıtlar varda o yevmiye kayıt numaların silinmesi

[850,258,150,800 farklı hesaplar var ise onlarda silinmez.

Kural 2: 3 ve 2 numaralı yevmiye numaralı satırların herhangi birinde 850,258,150,800 kayıtları yok ise o yevmiye ye ait kayıtların hiç biri silinmez.


890 nedir 800 yada 850 mi demek istediniz.

[850,258,150,800 evet onları demek istedim.


Yevmiye madde numara no kısmında farklı bağımsız kayıt yer almaktadır; madde numarası değişene kadar (1-1,2-2,3-3vs) madde numara kısmını şekil aracılığıyla açıkladım;
 

Ekli dosyalar

Son düzenleme:
[850,258,150,800 evet onları demek istedim.


Yevmiye madde numara no kısmında farklı bağımsız kayıt yer almaktadır; madde numarası değişene kadar (1-1,2-2,3-3vs) madde numara kısmını şekil aracılığıyla açıkladım;

5. mesajımdaki son düzenlediğim kodları denediniz mi?
Onun sonucu üzerinden devam edelim.
 
Hocam, denedim

1 no lu belirttiğim hesap kodları (850,258 vs) herhangi bir kayıt varsa hesap kodları olan satırı siliyor, aynen 7 nolu mesajımda belirtilen örnek gbi (sayfa3'de)
 
Hocam, denedim

1 no lu belirttiğim hesap kodları (850,258 vs) herhangi bir kayıt varsa hesap kodları olan satırı siliyor, aynen 7 nolu mesajımda belirtilen örnek gbi (sayfa3'de)

yani : ))
bir hata var mı? olması gereken gibi mi? değil iee nerede sorun var, nasıl düzeltelim.
 
Kodu güncelledim.
Sizin sonuç dosyanız ile aynı değil ancak yakın.

Anladığm kadarı ile kodladım. :)
 
Geri
Üst