• DİKKAT

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

Süzülen Satırlarda Makronun çalışması

Katılım
8 Temmuz 2009
Mesajlar
23
Excel Vers. ve Dili
2007 Türkçe
Elimde yaklaşık 350.000 satırlık bir veri var ve makro yazımını öğrenmeye başladım. Benim makromda satırlardaki verileri değerlendirip silen bir makro yazdım. Ancak makro her satırı tek tek değerlendirip ona göre işlem yapmakta. Acaba verileri önce koşula göre süzüp, daha sonra makro sadece o satırlarda çalışması gibi bir uygulama yapılabilir mi (zamandan tasarruf önemli)? Eğer yapılabilirse bir sonraki mesajımda dosya yükleyip yardımlarınızı isteyeceğim. Bu arada muhteşem bir siteniz var en kısa zamanda altın üye olacağım.

Kolay gelsin herkese
 
. . .

Süzme işlemi yaptığınızda koşul dışında kalan satırlar gizlenir.
Kodlarınıza satır gizliyse bir sonraki satıra geç koşulu ekleyerek yapabilirsiniz.


. . .
 
. . .

Örnek dosya ektedir.
A sütununda süzme kriterlerini seçtikten sonra kodu çalıştırın.
Açık satırların D sütununa veri girer.

...::: Ekli Dosyayı İndirmek İçin Linki Tıklayınız :::...
http://yadi.sk/d/TCfeorkEFkyQp

attachment.php


Kod:
Sub KOD()
Application.ScreenUpdating = False
Range("D:D").ClearContents

For i = 2 To [A65536].End(3).Row
    
If Rows(i).EntireRow.Hidden = True Then
Else
Cells(i, "D") = "Açık"
End If

Next
Application.ScreenUpdating = True
MsgBox " B i t t i"
End Sub


. . . .
 

Ekli dosyalar

  • 1_01.jpg
    1_01.jpg
    21.3 KB · Görüntüleme: 74
Çok teşekkür ederim. İşimi baya hızlandırdı. Böylelikle gizli satırlarda makronun çalışmasını engelleyip daha hızlı sonuç almamı sağladı. Tabii daha fazla hızlandırmanın yolunu öğrenene kadar :-)

Excel.web.tr --- İşyerinde Hayat Kurtarır
 
Biraz daha geliştirsek olayı nasıl olur. Süzme işlemini yaptık ve herhangi bir kayıt bulunmaması durumunda excel işlem sayısı bitene kadar makroya devam edecektir.
Bunu engelleyerek süzme işlemi sonrasında herhangi bir kayıt bulunmadığı zaman makroyu sonlandıracak bir kod ekleyebilir miyiz yukarıda yazılan koda ?

Örnek Dosya Ekledim. Diyelimki bu tabloda olmayan bir vergi dairesi olan Kağıthane Vergi dairesi olarak süzgeç yaptığımızda herhangi bir sonuç çıkmayacaktır. Bu durumda makronun sonlanmasını ve bir sonraki koda geçmesini istiyorum.
 

Ekli dosyalar

Son düzenleme:
. . .

Sorunuzu örnek bir dosya ile destekleyiniz.

. . .
 
Tekrar düzenlenmiş hali en son mesajımda yer almaktadır. Örnek dosyada ektedir
 
. . .

Tabloda filtre yok, kodlar yok. Bahsettiğiniz işlemi gerçekletirebilecek veri yok.
Aklıma ilk gelen bağ_değ_dolu_say formülüne benzer bir işlem ile çözübileceği ancak. Açıklama yetersiz. Ayrıca filtre seçeneğinde olmayan bir veriyi nasıl seçiyorsunuz.

Hata aldığınız bir örnek ekleyin.
Şu sütunda şu veriyi seçiyorum, şu kodlar hatalı çalışıyor şeklinde.

. . .
 
Merhaba.

Benzer konuları fazla inceleyemedim en yakın bu konuyu buldum. Benim sorunum şu. Giderleri listelediğim çalışma sayfasında "tutar" başlıklı sütunda belirli kriterlere göre filtre uyguladıktan sonra kalan sonuçların en altında otomatik toplam alacak bir makro gerekiyor. Aynı şekilde gelirler için hazırladığım dosya da var. Örnek dosya gerekiyor mu bilmiyorum gerekiyorsa hemen eklerim.
 
......... "tutar" başlıklı sütunda belirli kriterlere göre filtre uyguladıktan sonra kalan sonuçların ...... otomatik toplam .....
Merhaba. Foruma hoşgeldiniz.
Tablolarınızda başlık ve alttoplam gibi verileri tutmak için üstten birkaç satırı ayırmanızı,
bu satırlardan bir sonraki satırı seçip, GÖRÜNÜM menüsünden "BÖLMELERİ DONDUR"
işlemi yapmanızı öneririm, böylece başlık bölümü, siz tablonun alt taraflarına
gittiğinizde de göz önünde bulunur.

İstediğiniz, filtlenenlerin toplamını alma işlemini de üst taraftaki bu alanda yapmanızı öneririm.

Bunun için makroya gerek yok. Formül çubuğuna =ALTTOPLAM(9;$D$2:$D$100) yazıp ENTER
tuşuna basmanız yeterli olur.
(Kayıtlı verilerin 100'üncü satıra kadar yer aldığını ve tutarların D sütununda
olduğunu varsaydım. Formüldeki 9 sayısı TOPLAM işlevini temsil ediyor.
)
 
Son düzenleme:
=Alttoplam(9;E1:E100)

Formülü E1:E100 aralığındaki süzülmüş değerlerin toplamını verir. Formüldeki 9 ise yapılacak işlemin toplama oolduğunu belirtir. Aralığı kendinize göre uyarlayınız .
 
Tam olarak istediğim gibi. Çok teşekkür ederim.
 
Geri
Üst