• DİKKAT

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

subtotal çok yavaş ----acil----

Katılım
8 Ağustos 2008
Mesajlar
20
Excel Vers. ve Dili
excel 2007
(foksiyonlar bölümüne açacaktım ,sonra buraya daha uygun olduğunu düşündüm.)

subtotal fonksiyonunu kullandığım bir makrom var. bu makroyla yaklaşık 60.000 satırlık belgeyi subtotal yapıyorum ama çok yavaş yapıyor. hızlandırabileceğimiz bir kod ya da başka önerisi olan var mı ?
 
Merhaba,

Süzgeçlere bağlı olarak çalışması şart değilse, SQL ile hesapanabilr.
Örnek dosya ekleyiniz.
 
sayfa1 elimdeki belgenin örneği( 60.000 satırı buluyor gerçeği)
sayfa2 de subtotal hali
sayfa 3 de benim en son elde etmek istediğim formatta.
teşekkürler
 
Son düzenleme:
Ekli dosyayı inceleyin. 2007 biçimi için connction string düzenlenmesi gerekecek bilginize..

Kod:
Sub totals()
Dim cn As Object, rs As Object

Set cn = CreateObject("ADODB.Connection")

cn.Open _
"Driver={Microsoft Excel Driver (*.xls)};Dbq=" & _
    ThisWorkbook.FullName
    
Set rs = cn.Execute( _
"select distinct isim, sum(başvuru), sum(başarı) " & _
"from [Sayfa1$] " & _
"group by isim")

Sheets("zeki").[a2].CopyFromRecordset rs

rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing

Sheets("zeki").Activate
End Sub
 
connection string düzenlenmesi nasıl yapılıyor bilmiyorum. direk denedim ve çalıştı. ne kadar teşekkür etsem az, harikasın:).
 
Pekala, 2007 için düzenlenmiş proseduru düzenleyip birazdan ekleyeceğim.
 
Proseduru aşağıdaki ile değiştirin ancak, rapor sayfası adı ne olacaksa
"zeki" geçen yerleri onunla değiştirmeyi unutmayın.

Kod:
Sub totals()
Dim cn As Object, rs As Object

Set cn = CreateObject("ADODB.Connection")

cn.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
"Extended Properties=""Excel 12.0;HDR=YES"";"
    
Set rs = cn.Execute( _
"select distinct isim, sum(başvuru), sum(başarı) " & _
"from [Sayfa1$] " & _
"group by isim")

With [COLOR=Blue][B]Sheets("zeki")[/B][/COLOR]
    .[a2:c65536].ClearContents
    .[a2].CopyFromRecordset rs
End With

rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing

End Sub
 
yardımın için çok teşekkürler ama son yazdığın program "yüklenebilir ISAM bulunamadı" hatası veriyor.
 
Son düzenleme:
Geri
Üst