- Katılım
- 2 Ağustos 2010
- Mesajlar
- 3
- Excel Vers. ve Dili
- MS Excel 2007 İngilizce
Merhaba,
Önecelikle; yaşadığım problemle ilgili arama yapmak isterdim ama ne arayacağımı bilmiyorum, o yüzden forumda bu sorunun cevabı varsa peşinen özür dilerim.
Borç kayıtlarının tutulduğu bir tabloda geçmiş aylarda ÖDENECEK diye işaretlediğimiz kayıtları ÖDENMEDİ şeklinde yeniden düzenleyecek bir kod yazmaya çalışıyorum. Tabloyu her açtığımda kod geçmişi kontrol etsin, yapmadığımız bir ödeme varsa beni uyarsın derdindeyim.
Yazdığım kod autofilter kullanıyor ve filtreleme sonunda elde kalan satırlardaki DURUM sütunundaki kaydı değiştiriyor. Filtreleme sonunda eğer değiştirilecek satır kalmazsa bu sefer tutup sütun başlağını değiştiriyor. Nasıl bir hata var anlayabilmiş değilim, yadım edecek dostlara şimdiden teşekkürler, iyi Ramazanlar.
Dostlar, kendi hatamı buldum, ilgilenen tüm arkadaşlara teşekkür ederim. Merak edenler için; Autofilter'dan sonra eğer görüntülenecek satır kalmazsa son satır 1. satır (Başlıkların olduğu satır) oluyor. Takip eden kod'da orayı değiştiriyor haliyle. Çözüm son satır eğer 1. satır ise Autofilter'ı kaldırıp, sub routine'i sonlandırmak.
Önecelikle; yaşadığım problemle ilgili arama yapmak isterdim ama ne arayacağımı bilmiyorum, o yüzden forumda bu sorunun cevabı varsa peşinen özür dilerim.
Borç kayıtlarının tutulduğu bir tabloda geçmiş aylarda ÖDENECEK diye işaretlediğimiz kayıtları ÖDENMEDİ şeklinde yeniden düzenleyecek bir kod yazmaya çalışıyorum. Tabloyu her açtığımda kod geçmişi kontrol etsin, yapmadığımız bir ödeme varsa beni uyarsın derdindeyim.
Yazdığım kod autofilter kullanıyor ve filtreleme sonunda elde kalan satırlardaki DURUM sütunundaki kaydı değiştiriyor. Filtreleme sonunda eğer değiştirilecek satır kalmazsa bu sefer tutup sütun başlağını değiştiriyor. Nasıl bir hata var anlayabilmiş değilim, yadım edecek dostlara şimdiden teşekkürler, iyi Ramazanlar.
Kod:
With Worksheets("BORÇLAR")
If ActiveSheet.AutoFilterMode Then
ActiveSheet.Cells.AutoFilter
End If
With Range("A1:J1")
.AutoFilter
.AutoFilter Field:=2, Criteria1:=BuGunTarihYil
.AutoFilter Field:=3, Criteria1:=xAylarKriter, Operator:=xlFilterValues
.AutoFilter Field:=7, Criteria1:="ÖDENECEK"
End With
llastrow = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set DegisecekKolon = Range("G2", Cells(llastrow, "G"))
Set degisecekhucreler = DegisecekKolon.SpecialCells(xlCellTypeVisible)
If degisecekhucreler Is Nothing Then
ActiveSheet.Cells.AutoFilter
Exit Sub
End If
For Each HucreAdres In degisecekhucreler
HucreAdres.Value = "ÖDENMEDİ"
Next
ActiveSheet.Cells.AutoFilter
End With
Dostlar, kendi hatamı buldum, ilgilenen tüm arkadaşlara teşekkür ederim. Merak edenler için; Autofilter'dan sonra eğer görüntülenecek satır kalmazsa son satır 1. satır (Başlıkların olduğu satır) oluyor. Takip eden kod'da orayı değiştiriyor haliyle. Çözüm son satır eğer 1. satır ise Autofilter'ı kaldırıp, sub routine'i sonlandırmak.
Son düzenleme:
