• DİKKAT

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

  • Forum yazılımı güncelenmiştir.

    Beklenmedik durumlar görürseniz lütfen yönetime iletin.

String Hücrenin Koşulla Rengini Değiştirme

Katılım
18 Nisan 2022
Mesajlar
23
Excel Vers. ve Dili
Sürüm 2203, Türkçe
Merhaba,
Elimde bulunan sayıların; önce negatif olanlarını "Negatif" şeklinde değiştirmek, geriye kalanların da hücre içi rengini ve yazı rengini değiştirmek için bir makro yazdım.
Kod:
Sub foreach_negatif()
Dim i As Range
    For Each i In Range("A1:E4")
        If i < 0 Then
            i.Value = "Negatif"
        ElseIf i >= 0 Then
            Range("A1:E4").Interior.ColorIndex = 4
            Range("A1:E4").Font.ColorIndex = 33
        End If
    Next i
End Sub
Kodun Çıktısı Haline geldi fakat negatif yazan kısımları yukarıda yazdığım koşulun dışında tutarak renklendirmeden muaf olmasını istiyorum. Sanırım aynı bir Else-if yapısıyla bunu çözebilirim fakat Negatif yazan kısımları koda nasıl entegre edeceğimi çözemedim. Yardımcı olabilecek var mı?
 
Merhaba,

Deneyiniz.
Kod:
Sub foreach_negatif()
    Dim i As Range
    For Each i In Range("A1:E4")
        If i < 0 Then
            i.Value = "Negatif"
        ElseIf i >= 0 And IsNumeric(i) Then
            i.Interior.ColorIndex = 4
            i.Font.ColorIndex = 33
        End If
    Next i
End Sub

Not: Alanı renklendirdikten sonra, alandaki herhangi bir hücreye sıfırdan küçük değer girerseniz bile kodları yeniden çalıştırırsanız hücre renkli olacaktır. Çünkü kodlarınızda bunun önlemi alınmamış. Belki bilerek almamışsınızdır diye ben değiştirmedim.
 
Merhaba

Siz A1:E4 alanını her durumda renklendiriyorsunuz.

Bunu deneyiniz.
C++:
Sub foreach_negatif()
Dim i As Range
    For Each i In Range("A1:E4")
        If i < 0 Then
            i.Value = "Negatif"
        GoTo 10
        ElseIf i >= 0 Then
            i.Interior.ColorIndex = 4
            i.Font.ColorIndex = 33
10
        End If
    Next i
End Sub
 
@Ömer Anladım hocam, çok teşekkürler
@uzmanamele Çok teşekkürler şimdi anladım
 
Geri
Üst