H

Çözüldü Seçenek Düğmeleriyle Filtreleme

  • Konuyu başlatan Konuyu başlatan hakki83
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

hakki83

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Selamlar

Exceldeki onlarca yüzlerce özellikten biri olan filtreleme özelliği, sevdiğim bir özelliktir.

Arşivimdeki benim olmayan bir dosyaya bakarak, kendime göre bir örnek dosya hazırladım.

Örnek dosyada şu an için olmasını istediğim, tıkladığım düğmeyle kriterlere göre filtreleme yapmak.

1. satırda KIRMIZI’ya tıkladığımda kırmızılar filtrelenecek.
2. satırda ORTA’ya tıkladığımda ortalar filtrelenecek.
Bunun gibi.

Ve,

Her iki satırda bulunan (B1 ve B2 hücreleri) TAMAMI düğmelerine tıklayınca, filtremeler temizlenmiş olacak.

Ama,

Her iki satırda bulunan TAMAMI düğmelerinin ikisine de tıkladıktan sonra seçili kalmalarını sağlayabilmeli ve filtreleri temizleyebilmeliyim.
Zira elimdeki yabancı dosyada bu şekilde oluyor.

Teşekkürler

Bir de siz hocalarımızdan çözüm geldikten sonra, son sütundaki KUMAŞ kriterine göre çalışan filtreleme düğmesini, ben yapmak ve ilave etmek istiyorum.
 

Ekli dosyalar

Çözüm
İf yapısını öğrenmeniz gerek. İf dilimizde Eğer kelimesine karşılık geliyor. . Eğer şu ise bunu yap gibi düşünebilirsiniz.
Bir çok kullanım yapısı var. İlk başta şunu ifade edeyim if ile başayan bir kod kesinlikle end if ile bitmeli.
Örnek:
İf Koşulunuz Then​
Eğer koşul sağlanırsa çalışacak kod​
end if​

Bu durumda ifleri çoğaltabiliriz.
if koşul1 then​
Eğer koşul sağlanırsa çalışacak kod​
end if​
if koşul2 then​
Eğer koşul sağlanırsa çalışacak kod​
end if​
if koşul3 then​
Eğer koşul sağlanırsa çalışacak kod​
end if​

Bu durumda kriterimiz her if koşuluna girip...
Öncelikle optionbutton kullanırken butonları gruplandırma yapmanız gerekmektedir. Aksi durumda birden fazla seçim yapabilme imkanı vermez. Bu nedenle ben sadece rengine göre bulunan butonları gruplandırdım. Yani butonları grup kutusu içerisine aldım. Daha fazla kriter için grup kutusu ekleyiniz.
Not : Grup kutusu kenarlık ve başlık kısımlarını görünmemekte. Sebebi bunu gizlemiş olmam.
Ekli dosyayı görüntüle 5534

İkinci olarak butonlarına isim verdim. S ile başlayanlar satış butonlarını, R ile başlayanlar ise rengi ifade etmektedir. Burada bir önemli noktada isimlendirme kısmında tire "-" işaretinin kullanılması. Çünkü yazılan kod buton isimlerinden kriteri alıyor. Bu nedenle isimleri yazarken dikkat ediniz. Sayfada ki yazımın aynısı olmalı.

Kısaca,
- İsimlendirmeler R yada S ile başlamalı. Yeni bir grup ekleyecekseniz ona göre bir kriter koyulmalı. ( Kumaş için K gibi )
- Tire işareti "-" kesinlikle kullanılmalı
- Kriter olarak yazılması istenilen buton ismine eklenmeli.
Ekli dosyayı görüntüle 5535

Ekli dosyayı inceleyiniz. ( Güncellendi )


İlgili kod yapısı :

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(17 satır)

1599971079313.webp
 

Ekli dosyalar

  • 1599970172909.webp
    1599970172909.webp
    11.4 KB · Görüntüleme: 83
  • 1599970286676.webp
    1599970286676.webp
    7.1 KB · Görüntüleme: 79
  • 1599971079313.webp
    1599971079313.webp
    47.2 KB · Görüntüleme: 74
  • ornek.xlsm
    ornek.xlsm
    75.8 KB · Görüntüleme: 8
Moderatörün son düzenlenenleri:
Sayın cakarem merhaba
Heyecan içinda dosyanızı indirdim. Ve çok güzel olduğunu gördüm. Emeğinize sağlık.

(Erken davrandığım için düzenlenmiş iki farklı dosyayı da indirmiş oldum. İnceleyip aralarındaki farklara bakıyorum)
:)

Şimdi hem düşüncelerimi, yani payaşmak istediklerimi yazmak hem de sorularımı yöneltmek istiyorum.

Başlıyorum izninizle.

İlk önce yazdıklarınızı okurken, - tire - işareti koymaktan bahsettiğinizi görünce, hemen dosyanızdaki seçim düğmesi isimlerinde tire işaretini aradım. Ve göremedim. Zira karşımda görünen isimlerde tire işareti yoktu.

Sonra yüklediğiniz resimlerde “Seçim” penceresini gördüm ve bulmak istedim. Herhangi bir kutuya sağ tıklayınca “Biçim” menüsünün ortaya çıktığını ve buraya bakınca da “Seçim Bölmesi” butonuna tıklayınca bulmuş oldum. Ve burada tireli isimleri gördüm.

Ben seçim düğmelerine isim yazarken bu pencere karşıma çıkmamıştı, zira doğrudan kutuların üzerinde isimleri değiştiriyordum. Seçim bölmesi diye bir pencerenin varlığından habersizdim.
Hatta bir tane kutu oluşturup, kopyalayıp, diğer hücrelerin üzerine yapışıtırınca, görünüm olarak da (hiç kaymadığı için) çok güzel olmuştu.

Ama şunu düşünmedim değil. “Neden seçim bölmesinde isimleri değiştirdiğimizde, kutucukların üzerindeki isimler de değişmiyor?
Aynı kutuya ait iki farklı isim. Hatta bilirsiniz; kutunun “denetim biçimlendirme” kısmında üçüncü isim yazma yeri de var.

Kutu aynı kutu, ama üç farklı isim yazma yeri.

Daha sonra “bakarak yaptım” diye bahsettiğim diğer yabancı dosyayı da tekrar inceledim. (Hatta o dosyayı da yükleyeceğim)
Bu dosyanın seçim bölmesinde isimlerde tireler yoktu. Orjinal İngilizce isimleriyle bırakılmıştı kutular Seçim Bölmesinde. Ama çalışıyordu düğmeler.

***

Gelelim grup kutularına.

Ben başkasının dosyasında grup kutularını farketmiştim. Biraz da özensiz konulduğu için hemen dikkatimi çekmişti. Zira excel kullanan insanların örnek dosyalarında bu tip düzensizliklere çok rastlıyorum. Çalışmayan makrolar, bozulmuş formüller, hata vermiş ad tanımlamaları vs.. Bu şekilde çalışmaya devam ediyorlar.
Dosya sade olsun, ama net ve güzel çalışsın.


Neyse konumuza döneyim. Ben bu grup kutusunu gördüğümde basit bir çerçeve zannettim. Ve “buraya çerçeve koymanın ne gereği var” diye düşündüm. Çerçeveyi sildiğimde seçim kutularının çalışmadığını görünce bu çerçevelerin, seçim kutularıyla ilişkilendirilmiş olduğunu içimden geçirdim. Ama yine de bu çerçeveleri gereksiz bulmuştum, ta ki sizin verdiğiniz bilgileri okuyup da bunların grup kutusu olduğunu öğrenene dek..
(Yalnız belirtmeliyim, iki kriterde de grup kutusu vardı)



Sayın cakarem, şimdi gelelim sorularıma.

Soru 1)
“Sadece rengine göre olan butonları gruplandırdım” demiştiniz.
Satışına göre olan butonları gruplamadıysanız, nasıl doğru olarak çalışıyor?
Doğru olarak çalışması için bunların da gruplanması gerekmez miydi?
Yani neden sadece renk düğmelerini gruplandırdınız?


Soru 2)
Grup kutusu başlık adını gizlemekten kastettiğiniz, bildiğimiz silme yöntemi mi, yoksa grup kutusunu gizleyince doğal olarak o da mı gizlenmiş oldu?


Soru 3)
”Başkasının dosyasında” isimlerde tire olmadığını hatta orjinal isimlerle durduğunu arz etmiştim, Bu halde çalışıyor olması, ihtiva ettiği makro kodlarının farklı oluşundan mıdır?


Soru 4)
İlk mesajımda göndermiş olduğum örnek dosyanın üzerinde, sizden öğrendiklerimi aynen uygulamaya çalıştım. (Bu dosyayı da yükleyeceğim)
İki satırdaki düğmeleri de, iki ayrı grup kutularıyla, düğmeler içerde kalacak şekilde titizlikle çerçevenin içinde grupladım. (Ya da grupladığımı sandım)
Daha sonra makro kodlarınızı, ilk örnek dosyamın içine yapıştırdım.

Ve beklediğim gibi çalışmadı. Yani olmadı.

Nerede hata yaptım? Neyi eksik yaptım.


Soru 5)
Kendi örnek dosyamda seçim butonlarını tıkladığımda
2. satırda bulunan 4 adet butonu tıklıyorum. Hiç sorun yok.
Fakat
1. satırdaki butonları tıkladığımda ise, B2 hücresindeki “TAMAMI” düğmesinin üzerinde takıldı kaldı.

Neden?

Her şeyi aynı yapmama rağmen
2. satırda takılma olmadı da neden 1. satırda B2 hücresinde takıldı kaldı?
(Gruplama yapmama rağmen)

*****

Müsait zamanınızda vereceğiniz bilgilerden sonra kumaş kriterini eklemeyi deneyeceğim.
 

Ekli dosyalar

Soru 5)
Kendi örnek dosyamda seçim butonlarını tıkladığımda
2. satırda bulunan 4 adet butonu tıklıyorum. Hiç sorun yok.
Fakat
1. satırdaki butonları tıkladığımda ise, B2 hücresindeki “TAMAMI” düğmesinin üzerinde takıldı kaldı.

Neden?

Her şeyi aynı yapmama rağmen
2. satırda takılma olmadı da neden 1. satırda B2 hücresinde takıldı kaldı?
(Gruplama yapmama rağmen)
Düzeltme

Soru 5’deki B2 yazanlar

B1 olacak
 
Merhabalar.

Belgenizi incelemedim ancak, aşağıdaki konu sayfasında bir çalışmam var idi.
Sanırım nihai çözüm belgesi 20 numaralı cevap ekindeki. İlgili belgeyi bir inceleyin isterseniz.
Hem Seçenek Düğmesi ( OptionButton ) hem de Onay Kutusu (CheckBox) nesneleri kullanılıp,
kullanım bakımından TAM ESNEK bir belge ortaya çıkmış idi.

NOT: Konu sahibinin belgesindeki döngüsel başvuru hatasıyla ilgilenmemiştim ve o haliyle duruyordur.

 
(Erken davrandığım için düzenlenmiş iki farklı dosyayı da indirmiş oldum. İnceleyip aralarındaki farklara bakıyorum)
Fazla bir fark yok. Kodu biraz düzenledim. Çalışmayan seçenekleri vardı onları düzenledim.

İlk önce yazdıklarınızı okurken, - tire - işareti koymaktan bahsettiğinizi görünce, hemen dosyanızdaki seçim düğmesi isimlerinde tire işaretini aradım. Ve göremedim. Zira karşımda görünen isimlerde tire işareti yoktu.

Sonra yüklediğiniz resimlerde “Seçim” penceresini gördüm ve bulmak istedim. Herhangi bir kutuya sağ tıklayınca “Biçim” menüsünün ortaya çıktığını ve buraya bakınca da “Seçim Bölmesi” butonuna tıklayınca bulmuş oldum. Ve burada tireli isimleri gördüm.

Ben seçim düğmelerine isim yazarken bu pencere karşıma çıkmamıştı, zira doğrudan kutuların üzerinde isimleri değiştiriyordum. Seçim bölmesi diye bir pencerenin varlığından habersizdim.
Hatta bir tane kutu oluşturup, kopyalayıp, diğer hücrelerin üzerine yapışıtırınca, görünüm olarak da (hiç kaymadığı için) çok güzel olmuştu.

Ama şunu düşünmedim değil. “Neden seçim bölmesinde isimleri değiştirdiğimizde, kutucukların üzerindeki isimler de değişmiyor?
Aynı kutuya ait iki farklı isim. Hatta bilirsiniz; kutunun “denetim biçimlendirme” kısmında üçüncü isim yazma yeri de var.

Kutu aynı kutu, ama üç farklı isim yazma yeri.
Bir nesnenin birden fazla özelliği vardır. Buna çeşitli yollarla ulaşabilirsiniz. Bahsettiğiniz alanlar nesnenin name, caption, ve alternative text özellikleri. Üçü de birbirinden farklıdır. Name etiketi nesnenin ismini verirken caption etiketi nesne üzerinden görünen değeri gösterir. Alternative text kısmıda nesne üzerine gelince görünen açıklama kısmıydı galiba. Yada nesne görünmediğinde yerine yazılan metinde olabilir.
Dediğim gibi nesnenin aldığı farklı etiketler.
Neden name özelliğinde değişiklik yaptımda caption da yapmadım. Buton üzerinde R-Sari yazması kötü bir görüntüdür. En azından benim için öyle. Bu nedenle name etiketi üzerinden ilerledim. Bu konuda bir sorun kalmamıştır galiba. Nesneyi seçtiğinizde formül çubuğun solunda nesne name etiketi de yazar. Buradan da değiştirilebilir.
1600004479904.webp

Daha sonra “bakarak yaptım” diye bahsettiğim diğer yabancı dosyayı da tekrar inceledim. (Hatta o dosyayı da yükleyeceğim)
Bu dosyanın seçim bölmesinde isimlerde tireler yoktu. Orjinal İngilizce isimleriyle bırakılmıştı kutular Seçim Bölmesinde. Ama çalışıyordu düğmeler.
Yazılım konusunda aynı sonuca binlerce yoldan gidebilirsiniz. Bu sizin tercihinize kalmış hangisi kolayınıza geliyor ise.
Buton isimlendirmesini belli bir sıraya göre yapıp isim numaralarını baz olarak belli kriterden küçükse renk özelliği belli değerden büyükse farklı özelliği atayabilirsiniz. Bu da bir yöntem. Yada buton grupları içine alarak yaptığınız çalışmanın hangi grup kutusu içerisinde olduğunu sorgulayarak da bir yöntem yapabilirsiniz. Bu da bir başka yöntem. Yani kısaca istenilen sonuca istediğiniz yoldan gidebilirsiniz. İşte bu konuda yazılıma bayılıyorum. Her şey senin elinde bitiyor. Tercih senin.

(Yalnız belirtmeliyim, iki kriterde de grup kutusu vardı)
Soru 1)
“Sadece rengine göre olan butonları gruplandırdım” demiştiniz.
Satışına göre olan butonları gruplamadıysanız, nasıl doğru olarak çalışıyor?
Doğru olarak çalışması için bunların da gruplanması gerekmez miydi?
Yani neden sadece renk düğmelerini gruplandırdınız?
İki grup kutusu da koyulabilir. Ama bir tanesi yeterli geliyor. Bir grup kutusu koyunca iki seçim yapabiliyor iseniz ikincisini kullanmaya ne gerek var. Yada isterseniz kullanın sadece nesne kalabalığı oluşturur. Misal 3 grup içinde 2 tane kullanabilirsiniz. Tabi bu birazda yazacağınız kod ile alakalı bir durum.

Soru 2)
Grup kutusu başlık adını gizlemekten kastettiğiniz, bildiğimiz silme yöntemi mi, yoksa grup kutusunu gizleyince doğal olarak o da mı gizlenmiş oldu?
Başlığı silmişim. Sonra da nesneyi gizlemişim. Silmeden de gizlenebilir tabi. Seçim bölgesinde ki grup isminin sağ tarafında bulunan göz işaretine dikkat ediniz. Oradan gizleyip görünür yapabilirsiniz. Denemeler yaparak öğrenebilirsiniz merak ettiklerinizi...
1600005090341.webp



Soru 3)
”Başkasının dosyasında” isimlerde tire olmadığını hatta orjinal isimlerle durduğunu arz etmiştim, Bu halde çalışıyor olması, ihtiva ettiği makro kodlarının farklı oluşundan mıdır?
Tercih meselesi. Herkes kendine göre bir kod yazıyor. Neye ihtiyacı varsa onu kullanıp devam ediyor.

Soru 4)
İlk mesajımda göndermiş olduğum örnek dosyanın üzerinde, sizden öğrendiklerimi aynen uygulamaya çalıştım. (Bu dosyayı da yükleyeceğim)
İki satırdaki düğmeleri de, iki ayrı grup kutularıyla, düğmeler içerde kalacak şekilde titizlikle çerçevenin içinde grupladım. (Ya da grupladığımı sandım)
Daha sonra makro kodlarınızı, ilk örnek dosyamın içine yapıştırdım.

Ve beklediğim gibi çalışmadı. Yani olmadı.

Nerede hata yaptım? Neyi eksik yaptım.
Butonların hepsini seçip, sağ tıklayarak makro olarak atamanız gerek. Onu söylemeyi unutmuşum galiba :)
1600005406375.webp


Soru 5)
Kendi örnek dosyamda seçim butonlarını tıkladığımda
2. satırda bulunan 4 adet butonu tıklıyorum. Hiç sorun yok.
Fakat
1. satırdaki butonları tıkladığımda ise, B2 hücresindeki “TAMAMI” düğmesinin üzerinde takıldı kaldı.

Neden?
Grup kutusu eklediğinizde yada değişiklik yaptığınızda dışarıda kalmış olabilir. Silip yeniden ekleyiniz. Düzelecektir.
 
Moderatörün son düzenlenenleri:
Merhabalar.

Belgenizi incelemedim ancak, aşağıdaki konu sayfasında bir çalışmam var idi.
Sanırım nihai çözüm belgesi 20 numaralı cevap ekindeki. İlgili belgeyi bir inceleyin isterseniz.
Hem Seçenek Düğmesi ( OptionButton ) hem de Onay Kutusu (CheckBox) nesneleri kullanılıp,
kullanım bakımından TAM ESNEK bir belge ortaya çıkmış idi.

NOT: Konu sahibinin belgesindeki döngüsel başvuru hatasıyla ilgilenmemiştim ve o haliyle duruyordur.

Merhsba Sayın Ömer Baran hocam
ilginize çok teşekkürler. Henüz bilgisayar başında değilim bakacağım.

Benim amacım şudur.
Seçim düğmeleriyle filtreleme dosyasını, istediğim zaman istediğim dosyaya kendi başıma uygulayabilmek. Çünkü biraz uğraştırsa da oldukça hoş görünüyor seçim düğmeleriyle filtre yapmak.
Bunun için çok sade bir şekilde, hatasız nasıl yapıldığını öğrenebilirsem ve gerekli makro kodlarında, nerede değişiklik yapacağımı tam olarak öğrenebilirsem, ne mutlu bana.

Yani tereddütsüz ve hatasız yapabilmeliyim.

Eğer öğrenemezsem, bildiğimiz filtre düğmeleriyle devam edeceğim :)


Saygılarımla
 
Sayın cakarem tekrar merhaba
şu an denemeler yapıyorum,
hoşgörünüzden istifade ederek, grup kutusu konusu hakkında bir kaç soru arz etmem gerekecek.
:)
Grup kutusu konusunu tam anlayamadım.



Amacım;
ilk mesajımdaki örnek dosyayı, sizin makro kodlarıyla ve öğrendiklerimle, sıfırdan çalışır halde iki kriterli ve üç kriterli dosya yapabilmek.



Bir örnek dosyamız var. (#1 nolu mesaj)
Sizin makro kodlarınız var.
Ve öğrendiklerim var.

***
Grup kutusu konusu;

İki kriterli olunca iki grup kutusu,
üç kriterli olunca üç grup kutusu mu kullanmamız gerekiyor?

Yoksa hiç biri değildir de; sadece bir grup kutusu açılmalı ve bu grup kutusu bütün butonları kaplayacak şekilde düzgünce kaplamalı mıdır? Doğru olanı bu mudur? Birden fazla grup kutusu açmak, başlı başına bir hata mıdır?

Bu işin tam olarak doğrusu, standardı nedir?
**
Grup kutusunun yeri tam olarak neresi olmalıdır? Grup kutusu, satırın en başından, en son dolu hücreye kadar tümünü kaplamalı mıdır?
Yoksa böyle değil de, sadece o satırdaki seçenek butonlarını mı kapsamalıdır?
**
Grup kutusuna bir ad verilmesi veya verilmemesi, bir sonucu etkiliyor mu? Eğer bir ad verilmesi gerekiyor ise bu ad kapsadığı seçenek düğmelerindeki gibi tire işareti içermeli midir?
**
Yukarda verdiğiniz bilgilerde butonların hepsini seçip, makro atamamız gerektiğini belirtmiştiniz. Grup kutularına da makro kodunu atamamız gerekiyor mu, yoksa grup kutularını hariç mi tutmamız gerekiyor?

***
Grup kutuları hakkında bu kadar soru sormamın sebebi şudur, bir yerde hata yapıyorum, ama nerede hata yaptığımı anlayamadım. Yaptığım deneme dosyasında kriterlerden
birisi çalışıyor, diğeri çalışmıyor. Ya da hiç biri çalışmıyor. Grup kutularında hata yaptığımı düşünüyorum.

Oysa sizin örnek dosyanız kusursuz çalışıyordu.
 
Her grup için grup kutusu kullanılabilir. Yanlışı yok Daha düzenli ve daha sistematik gidersiniz Amacımız burada birden fazla tıklanabilir button oluşturmak.
Şöyle ki,
Eğer butonları gruplandırma yapmazsanız hepsini aynı grupta grupta olduğunu varsayıp tek bir seçenek seçmene olanak verecektir excel.
Biz bir grup oluşturup geri kalanları bu grubun dışında bırakıyoruz. Bu durumda aslında iki grup var. Biri grup kutusu içinde olanlar diğeri olmayanlar. Bu durumda excel iki tane buton seçebilme imkanı veriyor.
2 grup kutusu da kullanabiliriz. Bu durumda excel 1. grup kutusunda olanlar, 2, grup kutusunda olanlar şeklinde ayıracaktır. Aynı zamanda bu grupların dışında kalmış bir buton da olabilir. Yani 3 tıklama seçeneği karşımızda. Yada bu grup kutusu dışında buton koymayız, Sadece iki gruptan seçim yapabilirsiniz. Bu da tercih meselesi. İster tüm gruplarınızı grup kutusu içine koyun. İsterseniz Tüm olasılıklar +1 şeklinde düşünün. Biraz karışık oldu galiba. Anlatabilmişimdir inşaallah.

Bu işin tam olarak doğrusu, standardı nedir?
Standart konusunda bir şey diyemem. İş en kolay nasıl yapılırsa o tarafa kayıyorum ben.
Grup kutusunun yeri tam olarak neresi olmalıdır? Grup kutusu, satırın en başından, en son dolu hücreye kadar tümünü kaplamalı mıdır?
Yoksa böyle değil de, sadece o satırdaki seçenek butonlarını mı kapsamalıdır?
Hücre değilde butonlar grup kutusunun içinde olmalı. Dışına taşmamalı. Eğer hata alıyorsanız grup kutusunu silip hepsini kapsayacak şekilde yeniden ekleyiniz. Neden hata aldığınızı anlamış değilim.
Grup kutusuna bir ad verilmesi veya verilmemesi, bir sonucu etkiliyor mu? Eğer bir ad verilmesi gerekiyor ise bu ad kapsadığı seçenek düğmelerindeki gibi tire işareti içermeli midir?
Kodda kullanacaksınız isim verebilirsiniz. Kullanmayacaksınız vermenize gerek yok. Tercih meselesi verenler de var vermeyenlerde. Ben ise işime yarayıp yaramayacağı ile ilgileniyorum.
Grup kutusuna bir ad verilmesi veya verilmemesi, bir sonucu etkiliyor mu? Eğer bir ad verilmesi gerekiyor ise bu ad kapsadığı seçenek düğmelerindeki gibi tire işareti içermeli midir?
Tire konusu net anlaşılmadı galiba. Tire işaretleri dikkat ederseniz sadece butonları isimlendirmede verdim. Sebebi kod algoritmasında tire işaretinin önceki harfi neyse butonun sınıflandırmak. Renk butonu mu yoksa satış butonu mu.. Tire kriterinden sonra da olanlar ise filtreleme kullanılacak metindir. "MAVİ" gibi... Amaç bu isimlendirmenin kodda bir algoritmaya göre kullanılması. Grup kutusunda bu durum söz konusu olmadığı için, yani filtreleme de bir önem arzetmediği için gerek yok.
Yukarda verdiğiniz bilgilerde butonların hepsini seçip, makro atamamız gerektiğini belirtmiştiniz. Grup kutularına da makro kodunu atamamız gerekiyor mu, yoksa grup kutularını hariç mi tutmamız gerekiyor?
Makro kodu sadece butonları atayınız. Grup kutusuna tıklayınca bir filtreleme işlemi istiyorsanız o ayrı tabi. Hangi eylem de hangi iş yapılmalı ona göre kodlar kodlanır. Buton tıklandığında filtreleme yap demek için butona makro atadık. Bu durumda grup kutusunun bir önemi yok.

Neden hata aldığınız bilmiyorum. Grup kutusunu yerleştirirken dikkat ediniz. Hata almamak adına önemli
 
Her grup için grup kutusu kullanılabilir. Yanlışı yok Daha düzenli ve daha sistematik gidersiniz Amacımız burada birden fazla tıklanabilir button oluşturmak.
Şöyle ki,
Eğer butonları gruplandırma yapmazsanız hepsini aynı grupta grupta olduğunu varsayıp tek bir seçenek seçmene olanak verecektir excel.
Biz bir grup oluşturup geri kalanları bu grubun dışında bırakıyoruz. Bu durumda aslında iki grup var. Biri grup kutusu içinde olanlar diğeri olmayanlar. Bu durumda excel iki tane buton seçebilme imkanı veriyor.
2 grup kutusu da kullanabiliriz. Bu durumda excel 1. grup kutusunda olanlar, 2, grup kutusunda olanlar şeklinde ayıracaktır. Aynı zamanda bu grupların dışında kalmış bir buton da olabilir. Yani 3 tıklama seçeneği karşımızda. Yada bu grup kutusu dışında buton koymayız, Sadece iki gruptan seçim yapabilirsiniz. Bu da tercih meselesi. İster tüm gruplarınızı grup kutusu içine koyun. İsterseniz Tüm olasılıklar +1 şeklinde düşünün. Biraz karışık oldu galiba. Anlatabilmişimdir inşaallah.


Standart konusunda bir şey diyemem. İş en kolay nasıl yapılırsa o tarafa kayıyorum ben.

Hücre değilde butonlar grup kutusunun içinde olmalı. Dışına taşmamalı. Eğer hata alıyorsanız grup kutusunu silip hepsini kapsayacak şekilde yeniden ekleyiniz. Neden hata aldığınızı anlamış değilim.

Kodda kullanacaksınız isim verebilirsiniz. Kullanmayacaksınız vermenize gerek yok. Tercih meselesi verenler de var vermeyenlerde. Ben ise işime yarayıp yaramayacağı ile ilgileniyorum.

Tire konusu net anlaşılmadı galiba. Tire işaretleri dikkat ederseniz sadece butonları isimlendirmede verdim. Sebebi kod algoritmasında tire işaretinin önceki harfi neyse butonun sınıflandırmak. Renk butonu mu yoksa satış butonu mu.. Tire kriterinden sonra da olanlar ise filtreleme kullanılacak metindir. "MAVİ" gibi... Amaç bu isimlendirmenin kodda bir algoritmaya göre kullanılması. Grup kutusunda bu durum söz konusu olmadığı için, yani filtreleme de bir önem arzetmediği için gerek yok.

Makro kodu sadece butonları atayınız. Grup kutusuna tıklayınca bir filtreleme işlemi istiyorsanız o ayrı tabi. Hangi eylem de hangi iş yapılmalı ona göre kodlar kodlanır. Buton tıklandığında filtreleme yap demek için butona makro atadık. Bu durumda grup kutusunun bir önemi yok.

Neden hata aldığınız bilmiyorum. Grup kutusunu yerleştirirken dikkat ediniz. Hata almamak adına önemli
Anlaşılmıştır
Harika bilgiler :)
 
Sayenizde istediğim dosyayı istediğim şekilde ve hatasız olatak yaptım.

Son iki sorum kaldı :)
Kodlarla ilgili

Makro kodlarının içinde

AutoFilter Field:=6
satırında 6 rakamı, 6. sütun yani F sütununu mu temsil ediyor?


End(3).Row
olarak biten bir satır var. Burada 3 rakamı neyi ifade ediyor)
(Satır desem bir yere uymuyor, sütun olarak da uymuyor)

Bu iki soruyu da öğrenince
Başka sorum kalmamıştır. Sayın cakarem teşekkür ederim tüm güzel bilgileriniz için.
 
AutoFilter Field:=6
satırında 6 rakamı, 6. sütun yani F sütununu mu temsil ediyor?
6. sütun evet. Ama f sütunu mu bu başlatacağınız sütuna göre değişir. Kod bölümünde alan olarak Range("a5:h) yazıldı. A sütunundan saymaya başlayıp 6. sütunu bulabilirsiniz. Kısaca filtreleme için seçilen alanın 6. sütunu diyebiliriz.

End(3).Row
olarak biten bir satır var. Burada 3 rakamı neyi ifade ediyor)
(Satır desem bir yere uymuyor, sütun olarak da uymuyor)
Bunun için excelvba.net sitesinden güzel bir açıklama vardı. Uzun uzadıya yazmayayım. Alıntıdır.


End(1) Sola
End(2) Sağa
End(3) Yukarıya
End(4) Aşağıya

End(3)(2,1) Yukarı - Durduğun yerden bir alta
End(3)(1,0) Yukarı - Durduğun yerden bir sola
End(3)(2,7) Yukarı - Durduğun yerden bir alta ve 6 sağa

Bu işlemler aslında hedef belirlemek için çok önemli noktalardır. Anlamaya çalışmak ile çok iyi etmişsiniz.
yes.webp

Boş bir dosya açın ve A1 - J10 aralığına rastgele veriler yazın. Boşluk kalmasın. Sonra bir kod satırı yazıp deneyin.
KOD: TÜMÜNÜ SEÇRange("a65536").End(3)(-3, 6).Select
Buna göre, kod bitiminde F6 hücresinin seçili olması gerekiyor.
Neden ?
A sütunu, 65536 nolu satırdan yukarı çıkacağız çünkü End modu aktif. Aynen End tuşuna basıp, sonrasında yön oklarına basmış gibidir. Deneyebilirsiniz.
icon_e_wink.webp

Şimdi de sütun kısmını görelim. 6 demişiz. A65536 'dan geldiğimize göre, A sütunu 1 olacaktır. Hani demiştik ya End(3)(1,1) bulunduğu yer idi; şimdi sütun index numarasını değiştirip neler oluyor görelim. -3 satırını tespit ettik. Hedef A6 hücresine gelmişti. -3,6 kısmındaki 6 ile de bulunduğu yerden 5 satır sağa gelecek diyoruz. 1,1 bulunduğu yer ise, 1' in üzerine 5 koyarak 6 bulduğumuza göre; 5 satır sağa kayacağını da tespit ettik. Şimdi kodlamamızı çalıştırdığımızda, nereden başlatacaksak, sütun kaydırmalarını ona göre düzenleyebiliriz. Eğer B65536 ' dan başlasaydık ve yine F6 hücresini seçtirmeye çalışıyor olsaydık, B sütunu 2 nolu sütun olduğu için, hedef = 6 , başlangıç = 2 , hedef - başlangıç + 1 = 5 olacak ve kodlamadaki numara değerleri -3,5 olacaktı. End(3)(-3,5).

Neden Formülde -1 kullandık ?

A = 1
B = 2
C = 3
D = 4
E = 5
F = 6

olduğuna göre; başlangıcı biz B sütunundan yaptığımıza göre; hedefe ulaşmak için kaç adımımız var ? C,D,E,F . Yan yana 4 adım atacağız. Ama bir de B sütunu var. Biz orada bulunuyoruz ve kodlamayı açıklarken de 1,1 için bulunduğun satırın bulunduğun sütunu diyorduk. O halde 1,1 kısmındaki değeri de üzerine ilave etmeliyiz ki gerçek hedefe bizi ulaştırsın. Bunların daha da ince ayrıntılı açıklamasını yazdığım kitaba da ekleyeyim bari, madem merak edilen bir konuymuş.
icon_e_biggrin.webp


Anlamadığınız kısım yoksa, bir de End(3).Offset(0,0) varyasyonlarını deneyiniz.
 
Sayın cakarem merhaba
Bu konuda sizden öğrendiklerimle filtreleme butonları oluşturarak filtreleme yapıyorum. Hiç sorun yok. Fakat kafama bir şey takıldı sormak istedim.

Diyelim ki verdiğiniz kodlarla iki kriterli butonlu bir dosya oluşturduk.
Yine aynı kriterler:
rengine ve satış hızına göre olsun.

Peki aynı kriterler içerisinde birden fazla seçim yapabiliyor muyuz,
örnek hem kırmızı hem de mavi rengi aynı anda seçebiliyor muyuz?

Gerçi bunun çözümünü şöyle yapabilirim. Her renk için ayrı gruplama yaparım, ve makro kodlarında düzenlemeyi yapabilirim, ama bu çok uğraştırıcı ve sıkıcı bir iş olur. Aynı zamanda her renk için gruplama yapmak, biraz yanlış olur.

Zira zaten gruplama yapılmış. Her renk için ayrı ayrı gruplama yapmak bana çok doğru gelmedi.

Umarım anlatabilmişimdir. Örnek dosya olarak da sizin 2 nolu mesajdaki dosyanızı düşünebiliriz.

Teşekkürler
 
Filtreleme de birden fazla kriter kullanabilirsiniz.
.AutoFilter Field:=6, Criteria1:=renk
Criteria1 kısmına birden fazla kriter vermek için dizi yapısını kullanılabilir. Criteria=array(kriter1, kriter2) şeklinde.

Peki aynı kriterler içerisinde birden fazla seçim yapabiliyor muyuz,
örnek hem kırmızı hem de mavi rengi aynı anda seçebiliyor muyuz?
Seçilebilir. Lakin sayfa üzerinde bulunan nesneleri değiştirmelisiniz. Optionbutonun amacı tek bir seçenek seçilmesini sağlamak. Bunun yerine checkbox kullanmanız. Bu şekilde istediğiniz kritere göre filtreleme yapabilirsiniz

1600378920231.webp

Üst resimde bulunan iki buttonundan ilki Checkbox.. Birden fazla seçenek seçilmesi istenildiğinde kullanılır.
İkincisi optionbutton. Kriterler arasında tek kriter seçilmek için kullanılır.
 
Moderatörün son düzenlenenleri:
Filtreleme de birden fazla kriter kullanabilirsiniz.
.AutoFilter Field:=6, Criteria1:=renk
Criteria1 kısmına birden fazla kriter vermek için dizi yapısını kullanılabilir. Criteria=array(kriter1, kriter2) şeklinde.


Seçilebilir. Lakin sayfa üzerinde bulunan nesneleri değiştirmelisiniz. Optionbutonun amacı tek bir seçenek seçilmesini sağlamak. Bunun yerine checkbox kullanmanız. Bu şekilde istediğiniz kritere göre filtreleme yapabilirsiniz

Ekli dosyayı görüntüle 5615
Üst resimde bulunan iki buttonundan ilki Checkbox.. Birden fazla seçenek seçilmesi istenildiğinde kullanılır.
İkincisi optionbutton. Kriterler arasında tek kriter seçilmek için kullanılır.
Denemeler yaptıktan sonra neticeyi arz edeceğim :)
 
Filtreleme de birden fazla kriter kullanabilirsiniz.
.AutoFilter Field:=6, Criteria1:=renk
Criteria1 kısmına birden fazla kriter vermek için dizi yapısını kullanılabilir. Criteria=array(kriter1, kriter2) şeklinde.


Seçilebilir. Lakin sayfa üzerinde bulunan nesneleri değiştirmelisiniz. Optionbutonun amacı tek bir seçenek seçilmesini sağlamak. Bunun yerine checkbox kullanmanız. Bu şekilde istediğiniz kritere göre filtreleme yapabilirsiniz

Ekli dosyayı görüntüle 5615
Üst resimde bulunan iki buttonundan ilki Checkbox.. Birden fazla seçenek seçilmesi istenildiğinde kullanılır.
İkincisi optionbutton. Kriterler arasında tek kriter seçilmek için kullanılır.
Sayın cakarem hocam
yazdıklarınızı aynen yapmaya çalıştım fakat sanırım bir yerde hata yapıyorum. :)

(Daha çabuk yapayım diye renk değil satış kriterini onay kutulu yaptım)
 

Ekli dosyalar

Onay kutusu eklendiğinde grup kutularına gerek kalmayacağı için kaldırmış oldum. Aynı şekilde onay kutuları bulunan satırda tümü şeklinde ki seçeneği de kaldırmış oldum. Hepsi seçilebildiğinden bu seçenekte bana göre gereksiz göründü.
Tabi istenildiği gibi yapılabilir. Amaç sonuca ulaşmak ise kirlilik (kirlilik dediğime bakmayın gereksiz kullanım diyeyim ) oluşturan nesneleri kullanmamak gerek.

Koddaki değişikliği incelerseniz artık.
İlgili kod :
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(20 satır)
 

Ekli dosyalar

Onay kutusu eklendiğinde grup kutularına gerek kalmayacağı için kaldırmış oldum. Aynı şekilde onay kutuları bulunan satırda tümü şeklinde ki seçeneği de kaldırmış oldum. Hepsi seçilebildiğinden bu seçenekte bana göre gereksiz göründü.
Tabi istenildiği gibi yapılabilir. Amaç sonuca ulaşmak ise kirlilik (kirlilik dediğime bakmayın gereksiz kullanım diyeyim ) oluşturan nesneleri kullanmamak gerek.

Koddaki değişikliği incelerseniz artık.
İlgili kod :
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(20 satır)
Sayın cakarem elinize emeğinize sağlık, çok güzel olmuş. :)

18 nolu mesajınızdaki dosyayı sadece onay kutulu olarak kullanmak istiyorum.

Yani seçenek kutulu olan dosyayı ayrı ; onay kutulu olan dosyayı ayrı dosyalar olarak kullanmak istiyorum.

En son olarak (hiç aciliyeti yok, ne zaman müsait vaktiniz olursa) şunu rica edebilir miyim?

18 nolu son dosyadaki kodlar; sadece onay kutuları içeren bir dosya için düzenlenmiş olsun.

Yani bu kodda seçenek düğmeleri çalışmasın. Dolayısı ile kodlardaki TAMAMI gibi ibareler de olmasın.

Böyle olunca seçenek düğmeli dosyayı ve onay düğmeli dosyayı ayrı ayrı kullanabilirim. Ve kodlar sadeleşmiş ve kendine özgü olmuş olur. Umarım anlatabilmişimdir.

Kodlara istediğim kriter ilavesini yapmam da kolaylaşmış olur.
:)

(Not: Seçenek düğmeli de hiç sorun yok. İstediğim kriter ilavesini yapabiliyorum. Onay kutulu dosyayı da kendine özgü, sadece onay kutulu kod yaparsak çok güzel olur)


(Hatta şunu da eklemeden geçemeyeceğim.
Ben onay kutusunun ne işe yaradığını bilseydim, bu konuyu doğrudan onay kutulu hazırlanmış bir dosya ekleyerek açardım. Ama yapamadım. Çünkü bilmiyordum. Zira ilk mesajımdaki “bakarak yaptım” dediğim dosyada sadece seçenek kutuları vardı)
:)
 

Ekli dosyalar

Anladığım kadarıyla seçenek ve onay kutulu dosyaları ayrı bir şekilde istiyorsunuz. 2. ve 18. mesajdaki ekleri birleştirip dosyayı eklemek yeterli.
İlgili sayfadaki kodları inceleyip istediğinizi yapabilirsiniz.
1600861193172.webp


Onay Kutulu İlgili Kod:
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(19 satır)

Seçencek Kutulu İlgili Kod:
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(17 satır)

1600861270946.webp

1600861287651.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst