H

Çözüldü Filtreme ile ilgilili sorularım

  • Konuyu başlatan Konuyu başlatan hakki83
  • Başlangıç tarihi Başlangıç tarihi

hakki83

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba, iyi günler

Bilgisayarımdaki filtreleme ile ilgili dosyaları elden geçirmek ve kullanmayacaklarımı silmek istedim.

Bu konu başlığı altında filtreleme ile ilgili dosya ve sorularımı, izninizle yönelteceğim.

Sorularım:
Örnek dosyada A1 hücresine YTK2 yazınca filtreliyor, fakat YTK1 yazınca neden filtrelemiyor?

Örnek dosyanın 2. sayfasına, içerdiği kodları kopyaladım ve bazı satırlardaki rakamları kırmızıyla belirttim.


Sorularım:

3. Satırdaki 2 ve 3 rakamlarının anlamı nedir, değştirilirse nereye etki eder
5. Satırdaki 1 ve 1 rakamlarının anlamı nedir, değştirilirse nereye etki eder
6. Satırdaki 1 ve 1 rakamlarının anlamı nedir, değştirilirse nereye etki eder
8. Satırdaki 1 ve 3 rakamlarının anlamı nedir, değştirilirse nereye etki eder

Teşekkürler.


Sormuş olduğum rakamların ne işe yaradıklarını bilirsem; dosya üzerinde kendi çapımda küçük değişiklikler yapabilirim diye düşündüm.
 

Ekli dosyalar

@hakki83 , kısaca şöyle:

-- 3. Satırdaki 2 ve 3 rakamları: 2 sütun numarası, yani B sütunu. End(3).Row 'daki 3 sayısı xlUp anlamındadır, End(xlUp).Row şeklinde de yazılabilir. xlUp ile ilgili açıklama 8'inci satırla ilgili kısımda var.
-- 5. Satırdaki 1 ve 1 rakamları: 1'den 1'e kadar diye sütun için döngü kurulmuş. Başlagıç ve bitiş aynı olduğuna göre bu döngünün anlamı yok. 1 To 4 olsaydı bir alttaki kod satırındaki filtreeme işlemi A, B, C ve D sütunları için de uygulanacaktı. Döngü sadece 1'inci sütun için kurulduğuna göre bir anlamı yok bu nedenle For ve Next satırları silinebilir. Sadece 6'ncı satırdaki sut ibarelerinin yerine 1 (1'inci sütun, yani A sütunu) yazılması gerekir.
-- 6. Satırdaki 1 ve 1 rakamları: 1 sayısı SATIR NUMARASInı gösteriyor.
-- 8. Satırdaki 1 ve 3 rakamları: 1 sayısı SÜTUN NUMARASI. Kod satırı diyor ki; A sütununda, alttan yukarı doğru ilk dolu hücrenin satır numarası 3'ten küçükse FİLTREyi KALDIR denilmiş ama bu 3 sayısının 2 olması lazım.
YTK1-YTK2 farkı burada devreye giriyor. Çünkü bu 3 sayısı nedeniyle son kod satırı, üstteki kod satırının uyguladığı filtrenin kaldırılmasına neden oluyor ve siz işlem yapılmadı gibi düşünüyorsunuz.

Ayrıca kodun başındaki If Intersect(Target, [A1:A1])... kısmını If Intersect(Target, [A1])... olarak değiştirin çünkü hedef TEK HÜCRE.

.
 
@hakki83 , kısaca şöyle:

-- 3. Satırdaki 2 ve 3 rakamları: 2 sütun numarası, yani B sütunu. End(3).Row 'daki 3 sayısı xlUp anlamındadır, End(xlUp).Row şeklinde de yazılabilir. xlUp ile ilgili açıklama 8'inci satırla ilgili kısımda var.
-- 5. Satırdaki 1 ve 1 rakamları: 1'den 1'e kadar diye sütun için döngü kurulmuş. Başlagıç ve bitiş aynı olduğuna göre bu döngünün anlamı yok. 1 To 4 olsaydı bir alttaki kod satırındaki filtreeme işlemi A, B, C ve D sütunları için de uygulanacaktı. Döngü sadece 1'inci sütun için kurulduğuna göre bir anlamı yok bu nedenle For ve Next satırları silinebilir. Sadece 6'ncı satırdaki sut ibarelerinin yerine 1 (1'inci sütun, yani A sütunu) yazılması gerekir.
-- 6. Satırdaki 1 ve 1 rakamları: 1 sayısı SATIR NUMARASInı gösteriyor.
-- 8. Satırdaki 1 ve 3 rakamları: 1 sayısı SÜTUN NUMARASI. Kod satırı diyor ki; A sütununda, alttan yukarı doğru ilk dolu hücrenin satır numarası 3'ten küçükse FİLTREyi KALDIR denilmiş ama bu 3 sayısının 2 olması lazım.
YTK1-YTK2 farkı burada devreye giriyor. Çünkü bu 3 sayısı nedeniyle son kod satırı, üstteki kod satırının uyguladığı filtrenin kaldırılmasına neden oluyor ve siz işlem yapılmadı gibi düşünüyorsunuz.

Ayrıca kodun başındaki If Intersect(Target, [A1:A1])... kısmını If Intersect(Target, [A1])... olarak değiştirin çünkü hedef TEK HÜCRE.

.
Sayın Ömer Baran hocam, dilkkatle okuyup inceleyeceğim.
 
@hakki83 , kısaca şöyle:

-- 3. Satırdaki 2 ve 3 rakamları: 2 sütun numarası, yani B sütunu. End(3).Row 'daki 3 sayısı xlUp anlamındadır, End(xlUp).Row şeklinde de yazılabilir. xlUp ile ilgili açıklama 8'inci satırla ilgili kısımda var.
-- 5. Satırdaki 1 ve 1 rakamları: 1'den 1'e kadar diye sütun için döngü kurulmuş. Başlagıç ve bitiş aynı olduğuna göre bu döngünün anlamı yok. 1 To 4 olsaydı bir alttaki kod satırındaki filtreeme işlemi A, B, C ve D sütunları için de uygulanacaktı. Döngü sadece 1'inci sütun için kurulduğuna göre bir anlamı yok bu nedenle For ve Next satırları silinebilir. Sadece 6'ncı satırdaki sut ibarelerinin yerine 1 (1'inci sütun, yani A sütunu) yazılması gerekir.
-- 6. Satırdaki 1 ve 1 rakamları: 1 sayısı SATIR NUMARASInı gösteriyor.
-- 8. Satırdaki 1 ve 3 rakamları: 1 sayısı SÜTUN NUMARASI. Kod satırı diyor ki; A sütununda, alttan yukarı doğru ilk dolu hücrenin satır numarası 3'ten küçükse FİLTREyi KALDIR denilmiş ama bu 3 sayısının 2 olması lazım.
YTK1-YTK2 farkı burada devreye giriyor. Çünkü bu 3 sayısı nedeniyle son kod satırı, üstteki kod satırının uyguladığı filtrenin kaldırılmasına neden oluyor ve siz işlem yapılmadı gibi düşünüyorsunuz.

Ayrıca kodun başındaki If Intersect(Target, [A1:A1])... kısmını If Intersect(Target, [A1])... olarak değiştirin çünkü hedef TEK HÜCRE.

.
Ömer hocam güzel açıklamalarınız için çok teşekkürler. İlk önce sizden şunu rica edeyim.

Bazı düzeltmelerden bahsettiniz;

**End(3).Row 'daki 3 sayısı xlUp anlamındadır, End(xlUp).Row şeklinde de yazılabilir


**Döngü sadece 1'inci sütun için kurulduğuna göre bir anlamı yok bu nedenle For ve Next satırları silinebilir. Sadece 6'ncı satırdaki sut ibarelerinin yerine 1 (1'inci sütun, yani A sütunu) yazılması gerekir.


**If Intersect(Target, [A1:A1])... kısmını If Intersect(Target, [A1])... olarak değiştirin çünkü hedef TEK HÜCRE.

**bu 3 sayısının 2 olması lazım.

..

Bahsettiğiniz bütün sadeleştirme ve düzeltmelerle birlikte kodların son halini oluşturabilir misiniz.
….

Bir de sorum var; 3. satırdaki 2 rakamı, B sütununu gösteriyormuş. Peki B sütunun bu dosyadaki etkisi nedir? B sütunu da diğer sütunlar gibi filtrelenen bir sütun. Kodda neden belirtilmiş B sütunu, özelliği nedir?

Sonraki zamanlar sırasıyla diğer dosya ve sorularımı arz edeceğim.
 
Bilgisayarda deıilim.
Son sorunuzu cabevaplayayım.

Veri aralığının SON satırı tespit edilirken B sütununa bakılması tercih edilmiş.
son = Cells(Rows.Count , 2).End(3).Row
kod satırı, B (sütin no 2) sütununda ALTTAN ÜSTE DOĞRU ilk dolu hücrenin SATIR NİMARASInı verir.
B1048576 hücresi seçilip, CTRL+YUKARI OK tuşlamasının kod karşılığıdır.
Sütun numarasını 1 yaparsanız aynı işlem A sütunu üzerinden yapılmış olur.
Tabloda, BOŞ HÜCRENİN OLMADIĞI herhangi bir sütunun sütun numarası kullanılabilir.
 
Bilgisayarda deıilim.
Son sorunuzu cabevaplayayım.

Veri aralığının SON satırı tespit edilirken B sütununa bakılması tercih edilmiş.
son = Cells(Rows.Count , 2).End(3).Row
kod satırı, B (sütin no 2) sütununda ALTTAN ÜSTE DOĞRU ilk dolu hücrenin SATIR NİMARASInı verir.
B1048576 hücresi seçilip, CTRL+YUKARI OK tuşlamasının kod karşılığıdır.
Sütun numarasını 1 yaparsanız aynı işlem A sütunu üzerinden yapılmış olur.
Tabloda, BOŞ HÜCRENİN OLMADIĞI herhangi bir sütunun sütun numarası kullanılabilir.
Sayın Ömer hocam ne zaman müsait olursanız. Saygılar
 
Üst