• DİKKAT

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

farklı kolonlardaki bilgileri checkboxlar ile süzmek

Katılım
21 Eylül 2005
Mesajlar
184
Excel Vers. ve Dili
ofis 365 İngilizce
Merhaba Değerli Arkadaşlar.
2005 yılından beri bu forumda yer alıyor ve çok değerli üstadlardan faydalanıyorum.
Emeği geçen herkese sonsuz teşekkür ederim..

Bu defa konum şu;
userform üzerinde 30 adet checkbox'ım var ve teker teker(seçilen checkbox kadar)checkboxdaki sözleşme koduyla, iki tarih arasında arama yaptırmaya çalışıyorum. eşleşen ilk veri satırını bulup, aynı satırdaki diğer bilgilerin icmal sayfasına dökülmesini sağlayan bir kod yazmaya çalıştım.(2 tarih arasında)
örneğin;checkbox1de E-00 sözleşme kodu ile 2 tarih arasında işlem yapmış ofis adı, ofis numarası vs bilgiler icmal sayfasında sıralanıyor..sonra diğer seçilen checkbox captionundaki sözleşme kodu ile işlemler sıralanıyor..
Sorunum 3 yada 4 checkbox işaretlediğimde sorun yok ancak hepsini seçtiğimde userform kasıyor ve çok uzun bir süre sonra bilgileri aktarabiliyor..Yani yazdığım kod oldukça zayıf sanırım..veri satırı sayısı yaklaşık 12.000
Müsait olduğunuzda yardımcı olursanız sevinirim..

Saygılarımla,

Kodlar ;
Private Sub CommandButton3_Click()
Dim i As Byte

Set s1 = Sheets("icmal")
Set s2 = Sheets("satkroperasyon")
s1.[am4:aw50000].ClearContents
satır = 4
For i = 1 To 30

If Me.Controls("CheckBox" & i).Value = True Then
For Z = 4 To s2.[g65536].End(3).Row
If s2.Cells(Z, 7) = Me.Controls("checkbox" & i).Caption And s2.Cells(Z, 4) >= s1.[e3] And s2.Cells(Z, 4) <= s1.[g3] Then

s1.Cells(satır, 39) = s2.Cells(Z, 3)
s1.Cells(satır, 40) = s2.Cells(Z, 4)
s1.Cells(satır, 41) = s2.Cells(Z, 5)
s1.Cells(satır, 42) = s2.Cells(Z, 6)
s1.Cells(satır, 43) = s2.Cells(Z, 7)
s1.Cells(satır, 44) = s2.Cells(Z, 8)
s1.Cells(satır, 45) = s2.Cells(Z, 9)
s1.Cells(satır, 46) = s2.Cells(Z, 10)
s1.Cells(satır, 47) = s2.Cells(Z, 11)
s1.Cells(satır, 48) = s2.Cells(Z, 12)
s1.Cells(satır, 49) = s2.Cells(Z, 13)

satır = satır + 1
End If

Next Z
End If
Next i
MsgBox "TAMAMLANDI"
End Sub
 
Üstadlar, ekli dosyada görüleceği üzere, veri sayfa satırı az olduğunda sorun yok. Ancak satkroperasyon veri sayfası, orijinal dosyada 12.000 satır olduğu için userform önce kayboluyor sonra uzun bir süre sonra işlemleri tamamlıyor.
Ne yaparım da hızlandırabilirim?
 

Ekli dosyalar

30 checkbox * 12000 satır = 360.000 işlem demektir. Yani tüm kutular işaretliyse tam 360 bin kere kontrol yapılacak demektir. Bu da doğal olarak uzun sürer. Nasıl hızlandırılır kısmı beni aşıyor maalesef.
 
Yanıtınız için teşekkür ederim..
 
Geri
Üst