Sayının veya metnin her karakterini farklı renk yapma

Katılım
22 Ekim 2011
Mesajlar
261
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
30/05/2022
Merhabalar;
A hücresinde bulunan 15265879 sayının iki hane olacak şekilde renklendirmeyi koşullu biçimlendirme veya makro ile nasıl yapılabilir.

Saygılarımla...
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Ben artan düzende renk kurgusu yaptım. Dilenirse ve veri uzunluğu sabitse belirlenen renkler kullanılabilir.

Kod:
Sub İKİLİ_KARAKTER_RENKLENDİR()
    Range("A:A").Font.ColorIndex = False
    
    Son = Cells(Rows.Count, 1).End(3).Row
    
    For X = 1 To Son
        Renk = 3
        For Y = 1 To Len(Cells(X, 1)) Step 2
            Cells(X, 1).Characters(Start:=Y, Length:=2).Font.ColorIndex = Renk
            Renk = Renk + 1
        Next
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Ayhan Hocam,
Konu benim değil ama, benzer bir çalışmaya benim de ihtiyacım olduğu için inceleme gereği duydum. Araya girdiğim için özür dilerim.
A sütunundaki 2 satıra 2 satır daha ekledim sonuç resimdeki gibi oldu. Sonra eklenen satırlardaki fontlar hep kırmızı oluyor. 4 satır olduğunu biliyor, 2 şer 2 şer değiştireceğini de biliyor, buna rağmen 3. satırdan itibaren font sadece kırmızı geliyor.
Bir yerde benim de gözümden kaçan bir şey mi var?
Saygılarımla
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bende denedim. Bir anormallik görünmüyor.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Ayhan Hocam,
Eklediğim resme baktınız mı?
A3 ve A4 hücrelerindeki sayılar 8 karakter olmalarına rağmen 2 şer 2 şer farklı renk olmamış. İstenilen 2 şer 2 şer farklı renk olması değil mi? Ben mi yanlış anladım? Bir de bu renkler rastgele gelemez mi, mutlaka aynı renk sırasında mı gelmeli?
Saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tevfik Bey,

Deneme yaptığımda eklediğiniz resimdeki 3. ve 4. satırdaki hücrelerde bende 2 şer karakter olarak farklı renkleniyor. Yani tamamen kırmızı olmuyor.

Önerim bilgisayarınızı kapatıp açtıktan sonra kodu tekrar deneyin.
 
Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Sayın Korhan Ayhan Hocam,
Sayısal verilerin tamamını kırmızı renk yapıyor.A1 ve A2 hücrelerinde veriler metne dönüştürülmüş.Bende farklı yöntemle yapmaya çalıştım, metinsel (metin ve sayı aynı hücrede veya metin) başarılı oldum.Rakamlarda sorun çıktı.Metne çevirerek sorunu aştım.Tekrar sayıya çevirdiğimde aynı sorunla karşılaştım.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Makinemi de kapatıp açtım!
Sayın Çıtır'ın söylediği doğru. Eklediğim resimde de göreceğiniz gibi, B sütunu sayı, A sütunu metin. Bu durumda sonuç doğru. Belki bu halini de kullanabilirim, emin değilim. Ama renkleri de rastgele yapmak mümkün mü?
Saygılarımla
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kusura bakmayın. Verilerin sayısal olması gözümden kaçmış.

Bu durumda ilk olarak ilgili sütun metne dönüştürülür ve sonra renklendirme yapılabilir.

Kod:
Sub İKİLİ_KARAKTER_RENKLENDİR()
    Range("A:A").Font.ColorIndex = False
    Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 2), TrailingMinusNumbers:=True
    
    Son = Cells(Rows.Count, 1).End(3).Row
    
    For X = 1 To Son
        For Y = 1 To Len(Cells(X, 1)) Step 2
10          Randomize Timer
            Renk = Int((56 * Rnd) + 1)
            If Renk = 1 Then GoTo 10
            Cells(X, 1).Characters(Start:=Y, Length:=2).Font.ColorIndex = Renk
        Next
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Rica ederim. Çok şahane olmuş, zihninize ve elinize sağlık. Çok teşekkür ederim.
Yeri gelmişken bir soru daha sorsam umarım ayıp etmiş olmam. Bazı renkler görünmeyecek kadar açık, renk skalasını nasıl kısıtlarım? (Beyaz ve beyaza çok yakın renkleri engellemenin bir yolu var mı?)
Saygılarımla
 
Katılım
22 Ekim 2011
Mesajlar
261
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
30/05/2022
Sayın Korhan Ayhan;
Teşekkürler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hangi renkleri kısıtlamak istiyorsunuz?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Beyaz ve beyaza çok yakın renkler
Saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Harici_Renkler dizisini istediğini gibi değiştirebilirsiniz.

Kod:
Sub İKİLİ_KARAKTER_RENKLENDİR()
    Range("A:A").Font.ColorIndex = False
    Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 2), TrailingMinusNumbers:=True
    
    Son = Cells(Rows.Count, 1).End(3).Row
    Harici_Renkler = Array(2, 19, 20, 34, 35, 36)
    
    For X = 1 To Son
        For Y = 1 To Len(Cells(X, 1)) Step 2
10          Randomize Timer
            Renk = Int((56 * Rnd) + 1)
            For Z = 0 To UBound(Harici_Renkler)
                If Harici_Renkler(Z) = Renk Then GoTo 10
            Next
            Cells(X, 1).Characters(Start:=Y, Length:=2).Font.ColorIndex = Renk
        Next
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Ayhan Hocam,
Çok teşekkür ederim. Fevkalade değişebilir olmuş.
Saaygılarımla
 
Üst