Puantajda Alfabetik Sıralama Yapma

YasarPiskin

Kullanıcı
Katkı: %5
Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
Türkçe
TALLY sayfası kod bölümünde bulunan Sub SIRALAMA() kod bloku ile D9, C9, E9 dan başlayan D9:E aralığında her hangibir hücrede DELETE ile içerik temizlediğinde o satıra ait C:AK arlığını temizleyerek C:AK arlığını alfabetik sırayalan kodun revize hususunda yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (31 satır). Giriş Yap
Bu kodu TALLY sayfasının kod modülüne (sağ tık → View Code) mevcut Worksheet_Change yerine yapıştırın. SIRALAMA ve PUANTAJ modülleri olduğu gibi kalabilir.
 
Kodu TALLY sayfasının kod modülü Worksheet_Change yerine yapıştırıp denedim EK'te ekran görüntüsünü aldığım mesaj geliyor. Sıralama çalışmıyor.
 

Ekli dosyalar

  • Resim.webp
    Resim.webp
    84.2 KB · Gösterim: 31
Hata Worksheet_Change yüzünden değil, eski SIRALAMA içindeki şu satırdan geliyor:
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (1 satır). Giriş Yap
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (28 satır). Giriş Yap
Aynı modüldeki SIRALAMA içinde sadece eski .Sort satırını kaldırıp yerine bunu koyun:
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (44 satır). Giriş Yap
Önemli nokta: Worksheet_Change aralığını özellikle C9:E307 yaptım. Çünkü mevcut sıralama mantığınız ekran görüntüsünde üst blok için çalışıyor; 1012 bırakırsanız alttaki başka alanlarda da gereksiz yere SIRALAMA tetiklenir.
 
Sıralama yaparken birleştirlimiş hücrelerden oluşan C9:E aralığı iki satıra döünüyor. Son olarak sıralama işleminin hem DELETE özeliği ile hem de C9:E aralığına yeni kişler ekleyince gerçekleşmesini sağlayabilirmiyiz lütfen.
 

Ekli dosyalar

Evet, bunu birlikte toparlayabiliriz. İhtiyaç artık 2 parçalı:
  1. C9:E alanında DELETE yapınca ilgili C:AK satır/blok temizlenecek.
  2. C9:E alanına yeni kişi yazınca da sıralama çalışacak.
  3. Sıralama sonrası C9:E alanı tekrar 2 satırlık birleşik hücre düzenine dönecek.
Aşağıdaki çözüm bunun için daha doğru olur: Worksheet_Change her ekleme/silmede tetiklenir, SIRALAMA ise önce birleşikleri açar, sıralar, sonra tekrar 2 satırlık birleştirir.
TALLY sayfası kod modülüne bunu yapıştırın:
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (35 satır). Giriş Yap

Aynı sayfadaki eski SIRALAMA prosedürünü de bununla değiştirin:
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (57 satır). Giriş Yap

Bu revizyonda:
  • DELETE ile satır temizleme çalışır.
  • C9:E alanına yeni kişi yazınca da otomatik sıralar.
  • Sıralamadan sonra C:D:E yeniden 2 satır birleşir.
  • Önceki Range.Sort method failed hatasını veren eski kısa .Sort yapısı kaldırılmış olur.
Küçük not: burada 307/308 sınırını önceki yapınıza göre korudum.
 
Geri
Üst