Makro ile Dinamik Koşullu Biçimlendirme

Makro ile Dinamik Koşullu Biçimlendirme

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

PriveT

İlyas PINAROĞLU

Yönetici
Kullanıcı
Katılım
11 Mar 2019
Mesajlar
1,500
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Makro üstadlarım merhaba,
Formüller yardımıyla yaptığım koşullu biçimlendirmede araya satır kopyala yapıştır yapınca aksaklıklar yaşıyorum.
Bu yüzden yardımınıza ihtiyacım var.

Yapmak istediklerim 2. satırdan son dolu satıra (yardımcı sütun kullanılmadan);
  1. B sütunundaki verilere göre satırlarda sadece tek renk ve dolgusuz olacak şekilde gurupsal renklendirmek. (Ben bunu K sütununu yardımcı sütun olarak kullanarak yaptım.)
  2. F sütununda yer alan hücredeki tarih 27.07.2021 tarihinden büyükse J sütununun ilgili hücresine "AHM'DEN" yazdırmak.
  3. C, D ve I sütununda yinelenen hücreleri vurgulamak.
  4. G sütunundaki bir hücrede tarih var ise o satırı gri renklendirip tablonun sonuna taşımak. (Bu durumda 1 numaralı biçimlendirme iptal olacak ama 2 numaralı biçimlendirme aktif görevine devam edecek)
  5. Bazı durumlarda satırdaki font rengini değiştiriyorum. (örnek: 18. satır) Mümkünse makro bu font renklerimi etkilemeyecek.
  6. Bu madde o kadar önemli değil, olmasa da olur. 4. maddeye göre sona taşınan satırlar kendi aralarında G sütununa göre Eskiden Yeniye şeklinde tablonun sonunda sıralanacak.
Yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Çözüm
PriveT
Madem baktım, hazırladığım kodu göndereyim, alternatif olsun.
İsteğinizin karşılığı mıdır kontrol edersiniz.
Koddaki renkler yerine, sayfada belirleyeceğiniz belli hücrelere elle uygulayacağınız renkler de kullanılabilir elbette.

VBA:
İndirmek için giriş yapmanız gerekmektedir.
(11 satır)
Merhabalar Sn. PriveT

Belirttiğiniz maddelere göre parça parça kod oluşturunca biraz uzun oldu.
Dosyadaki Kayıt sayısı çoğaldıkça, koddaki döngülerden dolayı kodun işlemi tamamlama süresi uzun olacaktır.

Aşağıdaki kodları modül ya da ilgili sayfanın kod bölüme ekleyip, buton ya da herhangi bir nesneye makro olarak atayınız.

VBA:
İndirmek için giriş yapmanız gerekmektedir.
(90 satır)
 
Sayın AhmetRasim,
İncelediğim kadarıyla;
  • 1. satırdaki başlık satırı da sıralamaya dahil edilmiş,
  • Gurup biçimlendirmesi G sütununa kadar olmuş.
  • Dinamik olmamış. İşlem yaptıkça güncellenmiyor. (Büyük bir sorun değil. )
  • Evet, 300 satırda işlem 8-10 saniye kadar sürüyor.
 
- Başlıklar, Sıralamaya dahil ama satırı değişmiyor.
- İşlem yaptıkça çalışması için kodları Worksheet_Change bölümüne alabiliriz.
- "Gurup biçimlendirmesi G sütununa kadar olmuş" kısmını anlamadım açıkçası, nasıl bir hata oluşuyor.
Kodu çalıştırdığım zaman Örnek dosyadaki koşullu biçimlendirme ile aynı sonucu veriyor.
 
Ekli videodan başlıkla ilgili problemimi görebilirsiniz.

Gurup biçimlendirmesini şimdi kodları tekrar kopyalayıp denediğimde düzeldi. :unsure: J sütununa kadar renklendiriyor.
 

Ekli dosyalar

Kod içindeki sonS = s1.Cells(1, Columns.Count).End(xlToLeft).Column satırı ile 1. Satıra Göre Son Dolu Sütun Numarasını alıyor. Bu nedenle şuan J ye kadar renklendirme işlemini yapar. Eğer yeni bir başlık eklerseniz, renklendirme işlemine dahil olur.

Başlıklar benim yaptığım denemede yer değiştirmedi ama aşağıdaki bölümde bulunan G1:G yi G2:G olarak; A1:J yi de A2:J olarak değiştirdim.
Kod:
İndirmek için giriş yapmanız gerekmektedir.
(4 satır)

Ekran görüntüsü ektedir.
 

Ekli dosyalar

  • KosulluBicim.webp
    KosulluBicim.webp
    71.7 KB · Görüntüleme: 49
Ben de yinelenenlerin vurgulanması kısmını soracaktım.
Yinelenme kontrolü her sütun için ayrı ayrı mı (isim tekrarlanmışsa vurgula, TC Kimlik Numarası tekrarlanmışsa vurgula ...gibi),
Yoksa C, D ve I sütunları bütün olarak tekrarlanmışsa mı vurgulama yapılacak?
 
Sütunlar birbirinden bağımsız, kendi içlerinde. Sadece tekrarlanan hücreler renklenecek.
 
PriveT
Madem baktım, hazırladığım kodu göndereyim, alternatif olsun.
İsteğinizin karşılığı mıdır kontrol edersiniz.
Koddaki renkler yerine, sayfada belirleyeceğiniz belli hücrelere elle uygulayacağınız renkler de kullanılabilir elbette.

VBA:
İndirmek için giriş yapmanız gerekmektedir.
(29 satır)
 
Çözüm
Sayın Ömer BARAN,
Öncelikle emeğiniz için teşekkürler.
İşlem hızı harika. Hiç bekleme yok.
İsteklerimin hepsi gerçekleşiyor fakat sanırım D sütununa göre bir sıralama var kodda anladığım kadarıyla. Kimlik numarasına göre küçükten büyüğe sıralama yapıyor. Onu kaldırabilir misiniz?
Sıralamanın sadece G sütununda tarih olup aşağı taşınarak gri renklendirilenler kendi aralarında eskiden yeniye olarak yapılmasına ihtiyacım var.
 
Range("A2:K" & son).Sort [K2], , [D2]
kod satırında, VİRGÜLden başlayarak sağdaki kısmı silin veya
VİRGÜLden önce 1 adet TEK TIRNAK işareti ekleyin.
 
:giggle: Düzeldi, teşekkürler.
Çok şart değil ama G sütununda tarih olup alta taşıdığımız ve gri ile renklendirdiğimiz bölümü kendi içinde G sütununa göre eskiden yeniye sıralama yapabilir miyiz?
 
PriveT
Demek ki dikkatten kaçmış.
Kodun ilgili kısmını aşağıdaki gibi değiştirin (önceki cevabımı da buna göre güncelledim).

VBA:
İndirmek için giriş yapmanız gerekmektedir.
(4 satır)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt