H

Çözüldü İşaretlenmiş sonuçların listelenmesi

  • 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
Merhabalar


Örnek dosyada görüldüğü üzere A sütununda araç isimleri;
1. satırda, yani başlıklarda sorun isimleri vardır.
Her aracın yaşadığı sorunlar 1 rakamıyla işaretlenmektedir.
En sonda görülen SONUÇ sütununa sonuçlar dökülmektedir.
Örnek dosyadaki O1 hücresindeki SONUÇ başlığını ve
altındaki sonuçları, elle yazdım.


İstenen şudur:
Araçların sorunları 1 rakamıyla işaretleniyor demiştim.

Bir aracın bir tane de sorunu olsa, birden fazla sorunu da olsa,
ya da tüm satır 1 rakamıyla işaretli de olsa; makro düğmesine basıldığında sonuç satırına "SORUN VAR" olarak çıkmalıdır. Eğer bir aracın karşısında
1 rakamı hiç işaretli değilse, yani tüm satır bomboşsa, o zaman "YOK" yazısının çıkması yeterlidir.





Fakat çok önemli birkaç husus vardır. Bunlardan bahsedeyim.


Örnek dosyada tablodaki sorunların bulunduğu sütunlar kesinlikle sabit değildir. Değişkendir. Yani sorunlar B sütununa kadar da olabilir, K sütununa kadar da olabilir, Z sütununa kadar da olabilir. Değişkendir. Artabilir, azalabilir.
Bu yüzden sonuçların dökülecek sütununu, makro kodlarının otomatik olarak bulup dökmesi gerekmektedir.


Sonuç sütunu her zaman son sorun sütunundan bir sonraki sütun olmalıdır.
Diyelim ki
Sorunların bulunduğu son sütun C sütunuysa, sonuç sütunu D sütunu olarak dökülmelidir.Sorunların bulunduğu son sütun T sütunuysa, sonuç sütunu U sütunu olacaktır. Zaten istenen budur.
Bunun gibi.


Bir de bahsi geçen sonuç sütununun başlığı olan "SONUÇ" yazısı, otomatik olarak başlık hücresine gelmelidir.

Kodlarda hiçbir biçimlendirmeye ihtiyaç yoktur.

Konu çözüldükten sonra sayın hocalarımdan bu dosyayla ilgili bir de sıralama talep edeceğim, fakat karışıklık oluşturmaması için daha sonraya bıraktım.


Teşekkür ederim saygılar

(Satır sayısı yani araç sayısı da değişkendir, 10 da olabilir, 500 de olabilir)
(Dosyada görülen kelimelerin hepsi örnektir, yani tamamı değişecektir)
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Yanlış anlamadıysam koddaki şu kısımda 1'leri 2, 2'leri 1 yapmanız lazım.
.......If krt = 2 Then
krt = 1
Else: krt = 2: .....gibi
Hocam denedim değişen bir şey olmadı.
Kastettiğim tam olarak; bildiğimiz excel menüsündeki artan ve azalan sıralama.
İlk çift tıklamada azalan sıralamayı normal yapıyor,
Fakat ikinci çift tıklamada ise artan sıralanmış hücreler, sütunun en alt kısmında sıralanıyor. (Örnek dosyada kırmızıyla belirttiğim kısım)

Oysa normalde artan ve azalan sıralamada böyle bir sıralama şekli yok

Bunu da düzeltebilirsek, çift tıklama çok daha kullanışlı olacak hocam.
 
Moderatörün son düzenlenenleri:
1 yazılı olmayan hücreler boş olduğundan, elle ister azalan ister artan sıralama yapın 1 olanlar üste çıkar.
Ben ise şöyle düşündüm, boş hücrelere SIFIR yazdırılır ve sıralama gerçek anlamda aktif hali gelir.

Bunun için de gözle fark etmiyor olabilirsiniz ama;
ilgili sütun hangisiyse o sütunu, mevcut tablonun sağına (sütun sayısı değişse de sorun yok, dinamik yapı)
bir sütun ekleyip oraya aktardım, boş hücrelere 0 yazdırıp, sıralamayı da aslında eklenen bu sütuna göre yaptırdım,
sıralama sonrasında da eklenen bu sütunu sildirdim.

Yani siz aslında sıralama istemiyorsunuz, dolu tüm değerler 1 olduğundan 1'lerin üste çıkmasını istiyorsunuz öyle mi?
Ayrıca sıralama için ikincil bir kriter de yok (ilgili sütunda değeri aynı olanlar için ikincil kriter olarak örneğin hep A sütunu kullanılabilir).
İkincil kriter olmayınca 1 olanlar kendi aralarında önce/sonra sırası neyse o haliyle üste çıkacak demektir.
Bu durumda ARTAN ya da AZALAN diye 2'li bir sıralama mümkün olmaz, ilk tıklamada da 1'ler üstte, ikinci çift tıklamada da 1'ler üstte olur.

.
 
1 yazılı olmayan hücreler boş olduğundan, elle ister azalan ister artan sıralama yapın 1 olanlar üste çıkar.
Ben ise şöyle düşündüm, boş hücrelere SIFIR yazdırılır ve sıralama gerçek anlamda aktif hali gelir.

Bunun için de gözle fark etmiyor olabilirsiniz ama;
ilgili sütun hangisiyse o sütunu, mevcut tablonun sağına (sütun sayısı değişse de sorun yok, dinamik yapı)
bir sütun ekleyip oraya aktardım, boş hücrelere 0 yazdırıp, sıralamayı da aslında eklenen bu sütuna göre yaptırdım,
sıralama sonrasında da eklenen bu sütunu sildirdim.

Yani siz aslında sıralama istemiyorsunuz, dolu tüm değerler 1 olduğundan 1'lerin üste çıkmasını istiyorsunuz öyle mi?
Ayrıca sıralama için ikincil bir kriter de yok (ilgili sütunda değeri aynı olanlar için ikincil kriter olarak örneğin hep A sütunu kullanılabilir).
İkincil kriter olmayınca 1 olanlar kendi aralarında önce/sonra sırası neyse o haliyle üste çıkacak demektir.
Bu durumda ARTAN ya da AZALAN diye 2'li bir sıralama mümkün olmaz, ilk tıklamada da 1'ler üstte, ikinci çift tıklamada da 1'ler üstte olur.

.
Evet hocam tam olarak öyle, artan da azalan da, 1’ler üstte çıksın. Bahsettiğim gibi bildiğimiz normal sıralama. (Tabi tüm tabloyu seçerek)

Eğer mümkünse o şekilde yapabilirseniz çok sevinirim hocam.
 
O zaman kodlaması daha basit olur.
Mevcut kodda yer alan If Intersect(..... satırıyla Cancel = True satırının arasını aşağıdaki şekilde değiştirin (10: kısmına da gerek yok)

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

İşlemin tetiklenmesi:
Sıralama işleminin tetikleyicisi çift tıklama değil de 1'inci satırda dolu hücrenin seçilmesi olsun isterseniz; prosedür adını
Private Sub Worksheet_SelectionChange(ByVal Target As Range) olarak değiştirirsiniz ve Cancel=True satırına da gerek kalmaz.

.
 
O zaman kodlaması daha basit olur.
Mevcut kodda yer alan If Intersect(..... satırıyla Cancel = True satırının arasını aşağıdaki şekilde değiştirin (10: kısmına da gerek yok)

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

İşlemin tetiklenmesi:
Sıralama işleminin tetikleyicisi çift tıklama değil de 1'inci satırda dolu hücrenin seçilmesi olsun isterseniz; prosedür adını
Private Sub Worksheet_SelectionChange(ByVal Target As Range) olarak değiştirirsiniz ve Cancel=True satırına da gerek kalmaz.

.
Hocam if intersect dediğiniz satırı göremedim.

Size zahmet kodun değişmiş son halini komple yapıştırır mısınız?

Çift tıklama da şu an için iyi.
 
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)


Sayın hocam söylediğiniz gibi yaptım, son hali bu sanırım, fakat azalan sıralama yapmıyor. Sadece artan sıralama yapıyor.
 
Kod tamam ama demek ki ben isteğinizi anlayamadım.
Bence benim atladığım (şimdi fark ettim) son sütunun durumu (bu sütun için zaten ilave düzenleme lazım).

En iyisi siz azalan sıralamayı (SONUÇ sütunu şimdilik boşverin) elle kes-yapıştır vs elle yapın (hangi sütuna göre olduğunu da belirtin)
ve yeni bir örnek belge yükleyin. OLması gerekeni bir göreyim.
Yarın uygun vakit ilgilenirim artık.

Belgenizle ilgili genel eleştirim ise listeye ait sıra no gibi bir alanın olmaması.
Böyle bir sütun olursa her türlü işlemleriniz için çok işlevsel olur diye düşünüyorum.
En azından sıra no sütununa göre sıralama, belgenin orijinal haline dönüş için kullanılabilir.

.
 
Kod tamam ama demek ki ben isteğinizi anlayamadım.
Bence benim atladığım (şimdi fark ettim) son sütunun durumu (bu sütun için zaten ilave düzenleme lazım).

En iyisi siz azalan sıralamayı (SONUÇ sütunu şimdilik boşverin) elle kes-yapıştır vs elle yapın (hangi sütuna göre olduğunu da belirtin)
ve yeni bir örnek belge yükleyin. OLması gerekeni bir göreyim.
Yarın uygun vakit ilgilenirim artık.

Belgenizle ilgili genel eleştirim ise listeye ait sıra no gibi bir alanın olmaması.
Böyle bir sütun olursa her türlü işlemleriniz için çok işlevsel olur diye düşünüyorum.
En azından sıra no sütununa göre sıralama, belgenin orijinal haline dönüş için kullanılabilir.

.
Olur hocam.

Gözümüzde canlandırmamız açısından şöyle bahsedeyim.

Konumuz Sayın Ömer Baran hocamın paylaşmış olduğu kodlar ile yapılabilen; Çift Tıklama İle Sıralama

Şöyle düşünelim. Herhangi bir excel dosyasında veriler var. Ve biz bir sütuna göre sıralama yapmak istiyoruz. (Hem artan, hem azalan)
Ne yapmamız gerekir normalde? Önce o sütunu seçeriz, sonra Ctrl+ Shift+Space ile tüm tabloyu seçeriz. Ve hemen ardından Şeritteki iki sıralamadan biriyle (hangisini istiyorsak) sıralamayı yaparız. Canımız isterse artan sıralama veya azalan sıralama yaparız.
Dolayısı ile o sütuna göre sıralama yapmış oluruz.

Şu an da çift tıklama ile yapacağımızın hepsi bu. Bildiğimiz artan ve azalan sıralama.

Üç şart var sadece.
—-1’inci satırda başlıklar var ve çift tıklama bu başlıklara tıklanarak yapılacak.

—-Başlıklar haliyle sıralamaya dahil edilmeyecek. Başlıkların kımıldamaması gerekir)

—-Birinci çift tıklamayla azalan,
İkinci çift tıklamayla artan sıralama yapılacak.

Hepsi bundan ibaret sayın hocam.

Yani son sütun ilk sütun şeklinde bir ayarlamalara hiç gerek yok. Kodlar çift tıklama esnasında tablonun tamamını seçsin yeterli.

(Zaten tablonun tamamı seçilmez ise, o zaman o sıralama haliyle işe yaramaz, hatalı bir iş olmuş olur)
 
Ömer Baran hocama gif video.webp




Hocam bahsettiğim, çift tıklama ile yapılacak artan azalan sıralama konusu için, size kısa bir gif video çektim. Media Player Classic ile kolayca izleyelirsiniz.

https://s7.***/server20/gsw3i0/mplayerc.exe.html
 

Ekli dosyalar

  • Ömer Baran hocama gif video.webp
    Ömer Baran hocama gif video.webp
    14.6 KB · Görüntüleme: 0
Moderatörün son düzenlenenleri:
Son mesajdaki açıklamalara biraz üzüldüğümü belirteyim.
Excel'deki ARTAN/AZALAN sıralama işleminin mantığını bilmeyen olmadığını düşünüyorum.
Bunları açıklamanız pek anlamlı gelmedi bana.

Eklediğiniz örnek belgeyle, ekran görüntüsünü verdiğiniz tablodaki veriler sizce benzer yapıda mı?
Örnek belgenizde, tüm veriler 1 (bence en önemli kısım burası) ve
konu açılış mesajında gerçek verilerin de böyle olaacğını düşündürecek açıklama mevcut.

"Bir aracın bir tane de sorunu olsa, birden fazla sorunu da olsa, ya da tüm satır 1 rakamıyla işaretli de olsa;
.....Eğer bir aracın karşısında 1 rakamı hiç işaretli değilse, yani tüm satır bomboşsa.....
"

Eşitliği bozacak ikincil kriter de kullanılmadığına göre satır önceliği otomatik devreye girer ve
art arda aynı sütuna göre artan/azalan sıralama denendiğinde sayfada değişim olmuyor idi (22 numaralı cevapta açıklamıştım)
Dolu tüm veriler 1 iken değişim ne zaman oluşur? Bir sütunda sıralama yaptırdıktan sonra, başka bir sütunda sıralama yaptırılırsa.

Gereksiz yazışmalar yapıldı.
Her neyse; gerçek belgenizdeki verilerin tümünün 1 ve boş olmadığı anlaşılıyor (buna hiç değinmediniz).

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
.
 
Son mesajdaki açıklamalara biraz üzüldüğümü belirteyim.
Excel'deki ARTAN/AZALAN sıralama işleminin mantığını bilmeyen olmadığını düşünüyorum.
Bunları açıklamanız pek anlamlı gelmedi bana.

Eklediğiniz örnek belgeyle, ekran görüntüsünü verdiğiniz tablodaki veriler sizce benzer yapıda mı?
Örnek belgenizde, tüm veriler 1 (bence en önemli kısım burası) ve
konu açılış mesajında gerçek verilerin de böyle olaacğını düşündürecek açıklama mevcut.

"Bir aracın bir tane de sorunu olsa, birden fazla sorunu da olsa, ya da tüm satır 1 rakamıyla işaretli de olsa;
.....Eğer bir aracın karşısında 1 rakamı hiç işaretli değilse, yani tüm satır bomboşsa.....
"

Eşitliği bozacak ikincil kriter de kullanılmadığına göre satır önceliği otomatik devreye girer ve
art arda aynı sütuna göre artan/azalan sıralama denendiğinde sayfada değişim olmuyor idi (22 numaralı cevapta açıklamıştım)
Dolu tüm veriler 1 iken değişim ne zaman oluşur? Bir sütunda sıralama yaptırdıktan sonra, başka bir sütunda sıralama yaptırılırsa.

Gereksiz yazışmalar yapıldı.
Her neyse; gerçek belgenizdeki verilerin tümünün 1 ve boş olmadığı anlaşılıyor (buna hiç değinmediniz).

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
.
Aman hocam üzülmeyin
Siz bizim için değerlisiniz.

Verdiğiniz kodları denedim fakat maalesef
10: ile başlayan satırda hata verdi.
 
Üst