a11 'in yanında ki f ne işe yarıyor?
Range komutu kod içindeki bir aralığı tanımlamakta kullanılır. Sizin tablonuzda filtrelenecek alan mevcut haliyle
Range("A11:F22") dir. Bu yazım tarzında A nın yanındaki 11 rakamı tablonun ilk satırını, F nin yanındaki 22 rakamıda tablonun son dolu satırını ifade eder. Eğer tablonun son satırı sabitse kod içinde yukarıdaki yazım şekli yeterlidir. Fakat değişkense bu durumda son satırı koda tanıtmak gerekir, bunun içinde son satır değerini bulan
[a65536].End(xlUp).Row yazım şeklini kullanırız.
Buradaki a değişebilir. Bu yazım şeklinde A sütununun son hücresi bulunmaktadır. Bunu örneğin [b65536].end(xlup).row şeklinde yapsaydınız B sütunundaki en son satırı bulurdunuz.
Cells([a10], 8) ne işe yarıyor?
Genelde bir hücrenin kod içerisinde kullanılan 3 çeşit yazım şekli vardır. Ã?rneğin A1 hücresi için;
-Range("A1")
-[a1]
-cells(1,1) (matris yazım diyebiliriz. Hücre iki boyutu ile tanımlanır 1. satır, 1. sütun gibi)
Her üç yazım şeklide duruma göre kod içinde kullanılır. Eğer kod içindeki veri alınacak veya yazılacak hücrenin yeri değişken ise bu durumda cells(satırno,sütunno) yazım şekli tercih edilebilir. Çünkü satırno ve sütunno yu değişken yaparak hücre referansını kolaylıkla değiştirebilirsiniz. Buraki koddada bu yazım şekli kullanıldı. Çünkü Criteria1:=Cells([a10], 8), bu yazım şeklinde; kriter olarak kullanılacak verinin satır değeri A10 hücresinden ([a10]) hücresinden alınmaktadır. Liste kutusuna tıkladığınızda bu hücredeki değerin değiştiğini göreceksiniz. 8 rakamı ise sabit olup H sütununu ifade etmektedir.
Bir kodun çalışmasını anlamanın en iyi yolu öncelikle o kodu kağıt üzerinde çalıştırmaktır. Kod içindeki tüm değişkenlere alması gereken değerleri kağıt üstünde verin sonrada satır satır inceleyerek her satırdaki sonucu o satırın yanına yazın.
Biraz karışık olduğunun farkındayım ama en temel şeyleri bile anlatırken inannın sayfalarca yazı yazmak mümkün. Umarım bu açıklama yardımcı olmuştur.