hücreye farklı farklı Renk hk

Katılım
29 Ocak 2014
Mesajlar
130
Excel Vers. ve Dili
OpenOffice,
Office 365,
Google Sheets,
Excel Vba
Altın Üyelik Bitiş Tarihi
24.12.2022
Arkadaşlar Merhaba,

Benim sorum olacaktı; sorumu tabloda anlatmak isterim.

 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bildiğim kadarıyla formüllü hücrelerde normal yollardan aynı hücrede farklı biçimler kullanılamıyor. Ancak muhtemelen makro ile olabilir. Örneğin aşağıdaki kodu ilgili sayfanın kod bölümüne yapıştırdığınızda, A2:D2 arasındaki hücreler değiştiğinde G2 hücresindeki karakterlerin farklı renklerde olacağını düşünmüştüm. Ancak nedense karakterler ayrı ayrı değil hep birden renk değiştiriyorlar:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:D2]) Is Nothing Then Exit Sub

        With [G2].Characters(Start:=1, Length:=1).Font
            .Color = vbRed
        End With
        With [G2].Characters(Start:=3, Length:=1).Font
            .Color = vbBlue
        End With
        With [G2].Characters(Start:=5, Length:=1).Font
            .Color = vbGreen
        End With
        With [G2].Characters(Start:=7, Length:=1).Font
            .Color = vbYellow
        End With

End Sub
Daha sonra belki hücre formüllü olduğu için öyledir diye düşündüm ve sonucu da formül yerine kodla elde etmek için kodu aşağıdaki gibi değiştirdim ve istediğim sonucu elde ettim:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:D2]) Is Nothing Then Exit Sub

[E2] = [A2] & " " & [B2]
[F2] = [C2] & " " & [D2]
[G2] = [E2] & " " & [F2]


        With [G2].Characters(Start:=1, Length:=1).Font
            .Color = vbRed
        End With
        With [G2].Characters(Start:=3, Length:=1).Font
            .Color = vbBlue
        End With
        With [G2].Characters(Start:=5, Length:=1).Font
            .Color = vbGreen
        End With
        With [G2].Characters(Start:=7, Length:=1).Font
            .Color = vbYellow
        End With

End Sub
 
Üst