• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

"Koşullu Biçimlendirme" Makrosu

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Merhabalar,

Ekte Ekran Görüntüsünü verdiğim "Koşullu Biçimlemdirme" nin Makro Kodlamasında yardımlarınızı beklemekteyim.
 

Ekli dosyalar

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    55.4 KB · Görüntüleme: 86
bendeki ofis 2010 ona diyeyim gore kosullu biçimlendirme yapmadan evvel gorunumden makrolara gel oradan makro kaydet de kosullu biçimlendirmeni yap sonra makro kaydetmeni kapat oluşan makroya yeni bir isim ver kaydet işlemini gerçeklestirecektir. kolay gelsin
 
Üstad,

O yöntemi daha önce de denemiştim, komut bir yere kadar başarılı, ancak finalde sorun var. O da şudur; "Uygulama Hedefi" nin =$C$7:$C$999 olmasını istememe rağmen bunu gerçekleştiremiyorum.
 
Deneyiniz.

Kod:
Sub Bicimlendir()
    With Range("C7:C999")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=EĞER(VE($C7<>"""";EĞERSAY(O:O;$M7)=0);1;0)"
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
        .FormatConditions(.FormatConditions.Count).StopIfTrue = True
    End With
End Sub
 
Korhan bey'cim,

Çok teşekkür ederim, elinize sağlık...
 
Renk Kodları

Korhan bey,

Gönderdiğiniz son yanıtta kullandığınız Interior.Color = 5296274 gibi "Renk Kodları" nı nereden nasıl bulabilirim, en azından Ana Renkler için yardımınızı rica ederim.
 
Ek olarak örnek dosyayı da deneyebilirsiniz.
 

Ekli dosyalar

Merhaba. Ben de bir alternatif önereyim.

A1'den başlayarak A25'e kadar kullandığınız/kullanmayı düşündüğünüz renkleri kullanarak hücreleri renklendirin.

Sonra aşağıdaki kod'u sayfanın kod bölümüne
(sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçtiğinizde açılan VBA ekranının sağ tarafındaki boş alan)
yapıştırın, VBA ekranındayken F5 tuşuna basarak kod'u çılıştırın.

Böylece kllandığınız renklerin;
-- Color değerlerini B sütununda,
-- ColorIndex değerlerini C sütununda,
-- RGB karşılıklarını (Kırmızı, Yeşil, Mavi) D sütununda görürsünüz,
-- E sütunu ise tespit edilen RGB değerlerine göre renklendirilir.
.
Kod:
Sub renkler()
For satır = [B][COLOR="red"]1[/COLOR][/B] To [COLOR="red"][B]25[/B][/COLOR]
    Cells(satır, 2) = Cells(satır, 1).Interior.Color
    Cells(satır, 3) = Cells(satır, 1).Interior.ColorIndex
renk = Cells(satır, 1).Interior.Color
kırmızı = renk Mod 256: yeşil = renk \ 256 Mod 256: mavi = renk \ 65536 Mod 256
    Cells(satır, 4) = "K:" & kırmızı & ", Y:" & yeşil & ", M:" & mavi
    Cells(satır, 5).Interior.Color = RGB(kırmızı, yeşil, mavi)
Next
End Sub
 
Ömer bey,

Yine her zamanki gibi formunuzdasınız. Bu gidişle size çok müracaat edecek gibi görünüyorum. Hazırlıklı olun...
 
Korhan bey,

Size de çok teşekkür ederim. Sanırım bu gidişle daha çok görüşürüz.
Elinize sağlık...
 
Ömer bey,

Yine her zamanki gibi formunuzdasınız. Bu gidişle size çok müracaat edecek gibi görünüyorum. Hazırlıklı olun...
İltifat için teşekkürler.

Bugünlerde biraz yoğunluğum var, forumda olduğum zamanlara denk gelirse elbette bakarım.

Ayrıca, forumda açılan konuların çözülüp sonuca ulaşma hızı,
genellikle dakika cinsinden ölçülecek seviyededir.

Merak etmeyiniz açılacak konuları, ben veya diğer forum üyeleri mutlaka cevaplandıracaktır.
 
Son düzenleme:
Ekstra Katkı isteği...

Korhan bey, merhabalar

Kendisinin küçük ama yaptığı işin büyük olduğu bir Programın, "Koşullu Biçimlendirmenin Makrolaştırılması" bölümünde sizin de değerli katkılarınız ile mükemmel sonuçlar alıyorum. Varolunuz.

Yardımınızı esirgemeyerek gönderdiğiniz aşağıdaki VBA Kodlaması ile çok güzel yerlere getirdik, insanoğlu bu, yetinemiyor işte, n'aparsınız...

Şimdi sizden biraz daha katkı istirham ediyorum. Şöyle ki;

Aşağıdaki Kodlamanın Koşula uyan hücrenin "HÜCRE RENKLENDİRİLMESİ" ne ilişkin olduğunu görüyoruz. Biraz daha Abartalım/Köpürtelim istiyorum.

* .................... ' Hücre içi Yazı Tipi Kalınlaştırma
* .................... ' Hücre içi Yazı Tipi İtalik Yapma
* .................... ' Hücre içi Yazı Tipi Altını Çizme
* .................... ' Hücre içi Yazı Tipi Renklendirme
* .................... ' Hücre Kenarlıkları Çizme
* .................... ' Hücre Kenarlıkları Renklendirme
* .................... ' Hücre ve Hücre içi Yazı'ya ilişkin sizin başkaca varsa eklemeleriniz

İlgili Kod Satırının yanına 'açıklaması ile gönderirseniz biz de öğrenmiş oluruz.

Eee tabi, işin içine Yazı Tipi ile Kenarlık Renk Kodu Numarası da girdiğinden, bunlara ilişkin de Hücre Renk Kodu bulunmasına yönelik hazırladığınız Tablodan bunun için olanına da ihtiyaç duyacağımız aşikardır.

Şimdi ben pas'ı attım, gol atması da sizden :)


Kod:
Sub Bicimlendir()
    With Range("C7:C999")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=EĞER(VE($C7<>"""";EĞERSAY(O:O;$M7)=0);1;0)"
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(.FormatConditions.Count).Interior.Color = 5296274
        .FormatConditions(.FormatConditions.Count).StopIfTrue = True
    End With
End Sub
[/QUOTE]
 
Deneyiniz.

Makroları öğrenmek istiyorsanız MAKRO KAYDET yöntemini incelemenizi öneririm. Size fayda sağlayacaktır.

Kod:
Sub Makro1()
    With Range("A1:A100")
        .FormatConditions.Delete 'Belirtilen aralıktaki koşullu biçimlendirmeleri siler
        .FormatConditions.Add Type:=xlExpression, Formula1:="=A1<>""""" 'Koşula ait formül bölümü
        .FormatConditions(.FormatConditions.Count).SetFirstPriority 'Koşul düzeyini belirler
        .FormatConditions(.FormatConditions.Count).Interior.Color = 5296274 'Hücre dolgu rengini değiştirir
        .FormatConditions(.FormatConditions.Count).Font.Bold = True 'Yazı karakterini kalın yapar
        .FormatConditions(.FormatConditions.Count).Font.Italic = True 'Yazı karakterini italik yapar
        .FormatConditions(.FormatConditions.Count).Font.Underline = xlUnderlineStyleSingle 'Yazının altına çizgi ekler
        .FormatConditions(.FormatConditions.Count).Font.Color = -16776961 'Yazı karakterini renklendirir
        .FormatConditions(.FormatConditions.Count).Borders.LineStyle = 1 'Hücreye kenarlık ekler
        .FormatConditions(.FormatConditions.Count).Borders.Color = -4165632 'Hücre kenarlık rengini değiştirir
        .FormatConditions(.FormatConditions.Count).StopIfTrue = True 'Koşul sağlanıyorsa işlemi durdurur
    End With
End Sub
 
Korhan bey merhaba,

Verdiğiniz destekler için teşekkür ederim. Diğer taraftan, tavsiyenize ilişkin olarak;

"MAKRO KAYDET" işlevinin nasıl çalıştığını, neler yapabildiğini, elbette biliyorum, onlarca çalışmam içerisinde çalışan, binlerce Makroyu'da bu yöntem sayesinde çözmeye gayret ediyorum. Oluşturduğum Makrolar içerisine'de siz bilenlerin yardımıyla elde ettiğim eklemeler yapabiliyorum. Lakin her şeyi bilmem mümkün olamıyor, nedeni ise gayet basit, pek İngilizcem yok, öte yandan Visual Bacic (VBA) prensiplerini de kurgulamak için bilgim yeterli değil, bu bakımdan olabildiği ölçüde, aldığım yardımlarla kendi bilgilerimi harmanlayıp daha geniş daha kapsamlı Makrolar oluşturma isteğim nedeniyle, Makronun çalışmadığı/hata verdiği noktalarda siz bilenlerden destek talep ediyorum.

Yani özetle, "Balık yemek istemekten ziyade, balık tutmayı öğrenmek" deyiminde olduğu gibi kabul edin lütfen.

Bu bakımdan, yukarıda gönderdiğiniz (yardım) üzerinden uyarlama/uygulama yaptığımda, sorunumu aştım. Ancak, ilave sorun şudur ki;

Uygulama Hedefinin aynı olduğu Hücrelerde, Formula1=... koşuluna uyan "Koşullu Biçimlendirme Makrosu" nun çalışmasında sorun olmazken,
Ugulama Hedefinin başkaca Hücrelerde ve bu kez başka Formül Koşuluna uyan Koşullu Biçimlendirme Kodlamalarını da altına devam ettirdiğimde hata alıyorum.

Yine özetlemek gerekirse, Tek Tetikleme ile, birden fazla Koşula uyan (Formül) ve birden fazla Uygulama Hedefini bir arada yapabilen Makroyu, yukarıda yazdığım nedenlerden ötürü beceremedim.

Basit bir Örnek Verilerini aşağıda veriyorum. Ben bunun devamını getirmeye çalışırım;

Koşullu Biçimlendirme için Hücre Formulü;
1- =EĞER($A1<>$B1;1;0) ... Uygulama Hedefi ($C$1:$C$1000)
2- =EĞER(VE(EĞERSAY($D1;"*VERGİ*");$E1="");1;0) ... Uygulama Hedefi ($F$1:$F$1000)
3- =EĞER(VE(EĞERSAY($D1;"*CEZA*");$E1="");1;0) ... Uygulama Hedefi ($F$1:$F$1000)

Eğer sizin için zûl olmayacaksa, yardım istiyorum.

İlginize tekrar teşekkür ederim.
 
Sn. Korhan Hocalarım. Bu kodun içerisine birden fazla koşul ve renklendirme ekleyebilir miyiz? Ekleyebiliyorsak bir örnek verebilir misiniz mümkünse.
Örneğin =G3="Sarı" ise siyaha boya
=G3="Mavi" ise beyaza boya vb. gibi.
 
Son düzenleme:
Geri
Üst