• DİKKAT

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

ARAMA (MAKRO)

  • Konbuyu başlatan Konbuyu başlatan Ongun
  • Başlangıç tarihi Başlangıç tarihi
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Herkese selamlar, arkadaşlar ekli dosyada açıklaması bulunan bir sorunum var. Yardımcı olursanız sevinirim. İlginize teşekkürler. :hey:
 
12 adet aynı vergi numarasının tamamının F sütununda karşılığın boş olması ve G sütununda tamamınınmı dolu olması dikkate alınacak yoksa bu 12 kayıttan herhangi birisi için bu kriterlerin geçerli olması yeterlimi?
 
Sayın Leventm ilginize teşekkürler. evet F sütünunun 1 den 12 ye kadar olan sıra sumaralarının karşısındaki satırlara ait F sütünunun tamamı "BOÞ" olacak G sütununun da aynı şekilde tamamı "DOLU " olacak. Saygılarımla.
 
Arkadaşlar, lütfen yardımcı olurmusunuz.
 
sayın leventm, elinize sağlık çok güzel olmuş. Ancak, ben sizi yanılttım galiba F sütununun tamamı boş, G sütunun ise tamamı dolu olacak demiştim. özür dilerim.
benim istediğim, 1,2,3,4,5,6,7,8,9,10,11,12 sıra numarası her vergi numarası için zaman içerisinde mutlaka oluşacaktır. bu sıra numaralarının da kontrol edilmesi gerekmektedir. Yani 5. sıra numarasının oldugu satırda F sütunu "BOÞ" G sütunu "DOLU" olacak. bu koşul aynı vergi numarasına ait 1 den 12 ye kadar olan sıra numaralarının tamamı için geçerli olacak (sütunların tamamı için DEÐİL)

Ayrıca, UserForm1 üzerinde bulunan KAYDET bütonuna kodları yerleştirmemiz mümkünmü. Yani verileri kaydettikçe 12 dönemi kontrol edebilirmi.

öte yandan, 12 dönem oluştuğunda silme işlemini gerçekleştirdiğini gördüm. bu silme işleminin ayrıca
sıra numarası 1
sıra numarası 2
sıra numarası 3
sıra numarası 4
sıra numarası 5
sıra numarası 6
sıra numarası 7
sıra numarası 8
sıra numarası 9
sıra numarası 10
sıra numarası 11
sıra numarası 12

olan satırlara ait F sütunun "dolu" olması halinde dolu olan satır ve öncekilerinde silinmesi mümkünmüdür. Ã?rneğin, sıra numarası 5 olan satırın bulunduğu F sütunun olduğu satıra ait hücrenin dolu olması halinde aynı vergi numarasına ait sıra numarası 5,4,3,2,1 satırların silinmesi mümkünmüdür. Aynı şekilde eğer sıra numarası 9 olan satırın bulunduğu F sütununun olduğu satıra ait hücrenin "dolu" olması halinde aynı vergi numarasına ait sıra numarası 9,8,7,6,5,4,3,2,1 satırların silinmesi (bu döngü 1 den 12 ye kadar olan sıra numarası için geçerli olacak). mümkünmüdür. İlginize teşekkür ederim. Elinize sağlık

Emek asla yerde kalmaz. :hey:
 
Þöyle yapılsa nasıl olur. Her yeni veri kaydında otomatik olarak F sütununuda silsin, G sütununda boş kalmaması için uyarı versin. Böylece 12 kayıt girildiğinde sadece kayıt sayısı kontrol edilip silme işlemi yapılabilir. Bu kodları kaydet butonunada yazmak elbette mümkündür.
 
Sayın Leventm, açıklaması içinde olan örnek dosya gönderiyorum. Teşekkürler.
 
Sanıyorum bu sefer oldu. Kodu kaydet butonundaki kodun içine ekledim. Kayıt yapıldıktan sonra kriterlere göre arama yapılıp, gerekli veriler siliniyor.
 
Sayın Leventm elinize sağlık, ilk fırsatta kendi proğramımda deniyeceğim. İlginize Teşekkür ederim. Saygılarımla
 
Rica ederim. Yalnız şunuda hatırlatayım, Silme işlemi yapıldığından her ihtimal karşı dosyanızın bir kopyası üzerinde iyice test ettikten sonra kullanın.
 
Sayın Leventm, ben şu şekilde bir düzenleme yaptım.
Private Sub CommandButton2_Click()
Sheets("VERİ").Select
say = WorksheetFunction.CountIf([b2:b65536], CStr(TextBox1.Value))
If say < 12 Then Exit Sub
For a = Cells(65536, 1).End(xlUp).Row To 2 Step -1
If Cells(a, 1) <= 12 And Cells(a, 2) = CStr(TextBox1.Value) And Cells(a, 6) <> "" Then
MsgBox "VERGİ NO:" & TextBox1.Value & " İÇİN 12 DÃ?NEM TAMAMLANMIÞTIR" & Chr(10) & Chr(10) & "TAMAM BUTONUNA BASTIÐINIZDA TAMAMLANAN DÃ?NEME AİT VERİLER SİLİNECEKTİR."
GoTo 10
End If
Next
Exit Sub
10 For b = a To 2 Step -1
If Cells(b, 2) = CStr(TextBox1.Value) Then Rows(b).Delete
Next
Dim No As Long
For i = 2 To Cells(65536, 2).End(xlUp).Row
If Cells(i, 2) = TextBox1.Text Then
No = No + 1
Cells(i, 1) = No
End If
Next
End Sub
Bu kodlar siliyor ve yeniden sıralama yapıyor. Yani amacım A sütunundaki sıra numarasının her vergi numarası için sıralanması. nedeni ise 1 den 12 ye kadar sıra numarası (dahil) arasında Cells(a, 6) <> "" sütunun dolu olması durumunu kontrol ettirmek, bu işlemi yazdığınız kodlar çok güzel yapıyor. Yanlız bir şey dikkatimi çekti "SAY" kullanmışsınız. Yani B sütunundaki vergi numaralarının 12 adet olmasını sayıyor. Sorum şöyle;
bunun yerine A sütunundaki sıra numarasının 1 ile 12 (dahil) arasında Cells(a, 6) <> "" sütununun dolu olmasının kontrolünü yaptırabilirmiyiz. Yani koşul olarak sıra numaralarının kontrolü yapılarak silme işlemi mümkün müdür.?
Ã?rneğin, X vergi numarasının sıra numarasının 3 olduğunu varsayalım.Eğer bu sıra numarasına ait satırın karşısındaki Cells(a, 6) <> "" sütununun dolu olması durumunda 3,2,1 sıra numaralarına ait (X vergi numarasının bulunduğu) satırların silinmesini sağlayabilirmiyiz. Yani Ã?zet olarak X vergi numarasınA AİT SIRA NUMARASININ 12 OLMASI HALİNDE SİLME İÞLEMİNİN GERÇEKLEÞTİRİLMESİ (YANİ SİLME İÞLEMİNİN 1 İLE 12 (DAHİL) SIRA NUMARALARI ARASINDA KOÞULUN SAÐLANMASI DURUMUNDA GERÇEKLEÞMESİ) Saygılarımla.
 
Diyelimki 12. Kayıtta istenen şartlar gerçekleşti. Kod bu durumda kendinden önceki kayıtlarıda siliyor, böylece sonraki kayıtları zaten kontrol etmesine gerek kalmıyor. Yani 3. sıraki kayıtı kontrol etmesinin hiç gereği yok. Bir şunu belirteyim. Bu tip silme işlemlerinde kodun ilk satırdan değilde en alt satırdan başlayım ilk satıra doğru taraması en iyi yöntemdir bende bu yöntemi kullandım.

say değişkenide, eğer kayıt sayısı 12 nin altında ise boşuna değerlendirme yapmasını engellemek içindir.
 
Sayın Leventm, yaptığım proğramda "VERİ" sayfası istatistik tutuyor. Diğer sayfalara verilerin girilmesi halinde şartları uygun olanlar veri sayfasına atılıyor. Dolayısıyla, 12 dönemden kastım, aynı vergi numarasına ait 12 dönemde "ödendi" olmaması halinde Wordde otamatik olarak yazı oluşturuyorum. Þimdi bunun tam tersi yani 12 dönem arasında "ödendi" yazması halinde ise "ödendi" yazan satırdan sonraki satırların yeniden 12 adet oluşması için "ödendi" yazmaması gerekmektedir. Yani F sütununda "ödendi" yazan satırdan sonraki satırdan başlamak üzere 12 adet satırda "ödendi" yazmaması halinde Wordde otamatik olarak yazı oluşturuyorum. İnanın öyle zor bir konu ki anlatmakta zorlanıyorum.
Sonuç olarak, eğer bu 12 adet satır arasında "ödendi" yazan bir satır olması halinde de bu satır ve önceki satırların silinmesini sağlıyarak (sıra numarasıda silme işleminden sonra tekrar sıra numarası verdiğinden) yeniden 12 dönemin kontrolünü sağlamış olacağımı düşünüyorum. Umarım anlatabilmişimdir. Sağlıklı kalın. Selamlar.
 
Geri
Üst