• DİKKAT

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

Hücre Sayısal verilerde belli karakterleri Bold yapma

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,202
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

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.
 
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
 
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
 
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
 
Hücre Biçimlendirmeyi METİN olarak ayarlarsanız istediğiniz olur.
 
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.
 
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
 
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
 
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.
 
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.
 
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.
 
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.
 
Tamer bey örnek dosya paylaşır mısınız?
 
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
 
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!
 
Geri
Üst