ARAMA (MAKRO)

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:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
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?
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
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.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm ilginize teşekkürler.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Arkadaşlar, lütfen yardımcı olurmusunuz.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
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:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Þö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.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm, açıklaması içinde olan örnek dosya gönderiyorum. Teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
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.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm elinize sağlık, ilk fırsatta kendi proğramımda deniyeceğim. İlginize Teşekkür ederim. Saygılarımla
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
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.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
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.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
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.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
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.
 
Üst