Hücre Sayısal verilerde belli karakterleri Bold yapma

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

Ekli dosyada;
Hücre içindeki belli karakterleri bold ve kırmızı yapma kodu metinlerde çalışırken, hücre içeriği nümerik olduğunda çalışmıyor.

ilgili kodu Metinlerde olduğu gibi sayısal verilerde nasıl çalıştırabiliriz.

Kod:
With Range("A2")

    .Characters(2, 3).Font.Bold = True
    .Characters(2, 3).Font.Color = vbRed
    
End With
Teşekkürler,

iyi akşamlar.
 

Ekli dosyalar

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,092
Excel Vers. ve Dili
Microsoft Office 2019 English
Bildiğim kadarıyla olmaz, çünkü numeric bir alanda sadece şu sayı koyu olsun deme şansınız yok.

Mesela elle deneyin F2 ve 2 rakamı seçip Bold yapın olmayacaktır.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Hücre başına ' işareti ekleyerek denerseniz olur. Tabi bu sefer işaretleyeceğiniz karakter başlangıcını bir artırmak gerek.
Aşağıdaki gibi
Kod:
Sub Test22()

Range("A2") = "'" & Range("A2")
With Range("A2")

    .Characters(2, 3).Font.Bold = True
    .Characters(2, 3).Font.Color = vbRed
   
End With

End Sub
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Hücre başına ' işareti ekleyerek denerseniz olur. Tabi bu sefer işaretleyeceğiniz karakter başlangıcını bir artırmak gerek.
Aşağıdaki gibi
Kod:
Sub Test22()

Range("A2") = "'" & Range("A2")
With Range("A2")

    .Characters(2, 3).Font.Bold = True
    .Characters(2, 3).Font.Color = vbRed
 
End With

End Sub
Kod:
Sub test()
 With ActiveWorkbook.Worksheets("Sayfa1").Range("A2")
        .NumberFormat = "@"
         .Characters(1, 3).Font.Bold = True
         .Characters(1, 3).Font.Color = vbRed
    End With

End Sub
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Kod:
Sub test()
With ActiveWorkbook.Worksheets("Sayfa1").Range("A2")
        .NumberFormat = "@"
         .Characters(1, 3).Font.Bold = True
         .Characters(1, 3).Font.Color = vbRed
    End With

End Sub
Bu şekilde deneyiniz
Kod:
Sub test()
 With ActiveWorkbook.Worksheets("Sayfa1").Range("A:A")
        .NumberFormat = "@"
        .Characters(1, 3).Font.Color = vbRed
         .Characters(1, 3).Font.Bold = True
        
    End With

End Sub
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Hücre Biçimlendirmeyi METİN olarak ayarlarsanız istediğiniz olur.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
Bu şekilde deneyiniz
Kod:
Sub test()
With ActiveWorkbook.Worksheets("Sayfa1").Range("A:A")
        .NumberFormat = "@"
        .Characters(1, 3).Font.Color = vbRed
         .Characters(1, 3).Font.Bold = True
       
    End With

End Sub
Metin Hocam ilginize teşekkür ederim, yalnız bu durumda hücre içinde tüm karakterleri Bold/Kırmızı yapıyor.

Burada ilk 3 karakteri yapmasını istiyoruz. diğerleri eskisi gibi kalmalı

iyi günler.
 

Korhan Ayhan

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

C++:
Sub Karakter_Renklendir()
    With Range("A2")
        .NumberFormat = "@"
        .Value = .Text
        .Characters(1, 3).Font.Bold = True
        .Characters(1, 3).Font.Color = vbRed
    End With
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
Deneyiniz.

C++:
Sub Karakter_Renklendir()
    With Range("A2")
        .NumberFormat = "@"
        .Value = .Text
        .Characters(1, 3).Font.Bold = True
        .Characters(1, 3).Font.Color = vbRed
    End With
End Sub
Teşekkür ederim Korhan Hocam ,
elinize sağlık
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,092
Excel Vers. ve Dili
Microsoft Office 2019 English
Deneyiniz.

C++:
Sub Karakter_Renklendir()
    With Range("A2")
        .NumberFormat = "@"
        .Value = .Text
        .Characters(1, 3).Font.Bold = True
        .Characters(1, 3).Font.Color = vbRed
    End With
End Sub

Korhan Bey, bilgi sahibi olmak için soruyorum ; bu kod numeric olan bir değeri bold yapmıyor gördüğüm kadarıyla. Önce alanı text yapıyoruz sonra bold yapıyoruz. Alan bu defa text olarak kalıyor. Toplam vb bir şey aldırmak istenilirse haliyle cevap vermeyecektir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Doğrudur hücredeki değeri "Metin" formatına çeviriyoruz. Çünkü talep edilen işlem metinsel ifadeler için uygulanabilir.

Eğer işlem yapacaksanız formül içinde veriler sayıya çevirme yöntemleri ile sayısal değere çevrilebilir.
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,092
Excel Vers. ve Dili
Microsoft Office 2019 English
Doğrudur hücredeki değeri "Metin" formatına çeviriyoruz. Çünkü istediğiniz işlem metinsel ifadeler için uygulanabilir.

Eğer işlem yapacaksanız formül içinde veriler sayıya çevirme yöntemleri ile sayısal değere çevrilebilir.

Teşekkürler, duymak istediğim numeric alan içindeki bir veya birden fazla char'ın renklendirilmesi ile ilgiliydi.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
Deneyiniz.

C++:
Sub Karakter_Renklendir()
    With Range("A2")
        .NumberFormat = "@"
        .Value = .Text
        .Characters(1, 3).Font.Bold = True
        .Characters(1, 3).Font.Color = vbRed
    End With
End Sub
Korhan Hocam merhaba,
Yukarıdaki kod da işlem yaparken hücre içerisinde önceden kalan formatları kaldırıyor,

önce:
.Characters(1, 1).Font.Bold = True

sonra:
.Characters(3, 1).Font.Bold = True

sırasıyla yaptığımızda bir önceki format gidyor, ben hücredeki mevcut formatın muhafaza edilmesini, sadece kodda belirtilen karakterlere işlem yapılması nasıl sağlayabiliriz?

Teşekkürler,
iyi çalışmalar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tamer bey örnek dosya paylaşır mısınız?
 

Korhan Ayhan

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

Durum şu şekilde;

Kod ilk olarak hücreyi metin biçiminde biçimlendiriyor. Fakat siz hücreye sayı girdiğiniz için ve bu hücreyi metne çevirebilmek adına .Value işlemi yapılıyor. Bu işlemde daha önce yapılan biçimleri yok ediyor.

Eğer siz veri gireceğiniz alanı önceden METİN olarak biçimlendirip işlem yaparsanız sorun ortadan kalkar.

Bu durumda aşağıdaki kodu rahatlıkla kullanabilirsiniz.

Sorun çıkaran satırları pasif hale getirdim.

C++:
Sub Karakter_Renklendir21()

    With Range("A2")
        .NumberFormat = "@"
        '.Value = .Text
        .Characters(2, 1).Font.Bold = True
        .Characters(2, 1).Font.Color = vbRed
    End With
    
End Sub


Sub Karakter_Renklendir32()

    With Range("A2")
        .NumberFormat = "@"
        '.Value = .Text
        .Characters(3, 2).Font.Bold = True
        .Characters(3, 2).Font.Color = vbRed
    End With
    
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
hücreye sayı girdiğiniz için ve bu hücreyi metne çevirebilmek adına .Value işlemi yapılıyor. Bu işlemde daha önce yapılan biçimleri yok ediyor.
Çok teşekkür ederim Korhan Hocam
emeğinize sağlık!
 
Üst