Excel'de dolgu rengi hakkında bilgi alma yöntemleri
Standart Excel formülleri (örneğin EĞER veya DÜŞEYARA) ile hücre rengini doğrudan okumak mümkün değildir, çünkü renk bir veri değeri değil, biçim özelliğidir. Rengi programlı olarak belirlemek için VBA dilinde kullanıcı tanımlı bir fonksiyon kullanmanız gerekir. Ancak renk "Koşullu Biçimlendirme" ile atanmışsa, kuralın mantığını normal bir formülle yeniden oluşturmak yeterlidir. Birkaç hücreyi tek seferlik kontrol etmek için araç çubuğu üzerinden görsel yöntem uygundur.
Hücre biçimini manuel olarak kontrol etme
Az sayıda hücre için rengi öğrenmenin en hızlı yolu, menü şeridi üzerinden görsel incelemedir. Bu yöntem kod yazmayı gerektirmez ancak büyük tabloları renge göre otomatik sıralama veya filtreleme için uygun değildir.
Uygulama adımları:
- Hedef hücreyi seçin.
- Giriş sekmesine gidin.
- Dolgu Rengi düğmesinin (boya kovası simgesi) yanındaki oka tıklayın.
- Palette "Son Kullanılanlar" olarak vurgulanan veya çerçeveyle belirtilen renk, mevcut hücre dolgusuna karşılık gelir.
Bu yöntem yalnızca noktasal kontroller için etkilidir. 1000 satırı renge göre filtrelemeniz gerekiyorsa, manuel kontrol çok fazla zaman alacaktır.
VBA ile otomatik renk belirleme
Verilerin toplu analizi için tek çalışan çözüm, VBA makro dilinde kullanıcı tanımlı bir fonksiyon (UDF) oluşturmaktır. Bu fonksiyon, diğer formüllerde kullanılabilecek veya filtreleme için yararlanılabilecek sayısal bir renk kodu döndürür.
GetCellColor fonksiyonunu oluşturma
- VBA düzenleyicisini açmak için
Alt + F11tuşlarına basın. - Menüden Insert > Module seçeneğini belirleyin.
- Açılan pencereye aşağıdaki kodu yapıştırın:
Function GetCellColor(cell As Range) As Long
' Dolgu renginin sayısal kodunu döndürür (Long)
GetCellColor = cell.Interior.Color
End Function
Function GetCellColorIndex(cell As Range) As Integer
' Paletten renk indeksini döndürür (gruplama için daha kullanışlı)
GetCellColorIndex = cell.Interior.ColorIndex
End Function
- VBA düzenleyicisini kapatın ve tabloya geri dönün.
- Yeni fonksiyonu bir hücrede normal bir formül gibi kullanın:
=GetCellColor(A1)
Sonuç uzun bir sayı olacaktır (örneğin beyaz için 16777215 veya sarı için 65535). Bu sayılar RGB sistemine karşılık gelir.
Dosyayı .xlsm formatında (Makro Destekli Excel Çalışma Kitabı) kaydedin, aksi takdirde dosya kapatıldığında fonksiyon kodu silinecektir.
Sonuçların yorumlanması
Elde edilen sayısal kodlar tek başına pek bilgilendirici değildir. Kolaylık sağlaması açısından kodu renk adına çeviren bir referans sütunu oluşturun veya sayısal değerlere göre filtre kullanın.
| Renk Kodu (örnek) | Olası Renk | Kullanım Alanı |
|---|---|---|
| 16777215 | Beyaz | Varsayılan arka plan |
| 65535 | Parlak Sarı | Önemli verileri vurgulama |
| 255 | Parlak Mavi | Kategori işaretleme |
| -4142 | Dolgu Yok (None) | Boş hücre |
.Color fonksiyonu, hücre rengi değiştirildiğinde otomatik olarak güncellenmez. Hücreleri yeniden boyadıktan sonra F9 tuşuna basarak sayfayı zorla yeniden hesaplatmanız gerekir.
Koşullu biçimlendirme içeren hücrelerin analizi
Hücre rengi manuel dolgu sayesinde değil, Koşullu Biçimlendirme kuralı sayesinde oluştuysa, VBA kullanmak gereksizdir. Bu durumda renk, belirli bir mantıksal koşulun yerine getirilmesinin sonucudur.
Rengi "okumaya" çalışmak yerine, kuralın koşulunu formülde tekrarlamak daha kolaydır.
Örnek:
Değer 100'den büyükse hücrelerin yeşile boyandığını varsayalım.
Makro yerine şu formülü kullanın:
=EĞER(A1>100; "Yeşil"; "Normal")
Koşulu öğrenme yöntemi:
- Renkli hücreyi seçin.
- Giriş sekmesinde Koşullu Biçimlendirme > Kuralları Yönet seçeneğine tıklayın.
- "Formül" alanındaki formülü inceleyin. Hücre durumunu mantıksal olarak belirlemek için kullanmanız gereken şey tam olarak budur.
Renk belirleme yöntemlerinin karşılaştırılması
Araç seçimi görevinize ve dolgu türüne bağlıdır.
| Yöntem | Dolgu Türü | Zorluk | Otomasyon |
|---|---|---|---|
| Görsel | Herhangi biri | Düşük | Yok |
| VBA (Makro) | Manuel dolgu | Orta | Tam |
| Mantıksal formül | Koşullu biçimlendirme | Düşük | Tam |
| Power Query | Dolaylı analiz | Yüksek | Kısmi |
Sık yapılan hatalar
- Standart fonksiyonları kullanmaya çalışmak.
=RENK(A1)gibi formüller Excel'in temel setinde bulunmaz. - Yeniden hesaplamayı göz ardı etmek. Hücre rengini değiştirdikten sonra VBA formülü sonucu anında güncellemez.
F9tuşuna manuel olarak basılması gerekir. - Color ve ColorIndex karışıklığı.
Colorözelliği tam tonu (RGB) döndürürken,ColorIndexsınırlı bir paletten (56 renk) numara döndürür. Dosyada standart olmayan tonlar kullanılıyorsa,ColorIndexhata verebilir veya yanlış sonuç döndürebilir.
SSS
Tabloyu makro olmadan renge göre sıralayabilir miyim? Evet, Excel'in yerleşik filtresi verileri hücre veya yazı tipi rengine göre manuel olarak sıralamanıza ve filtrelemenize olanak tanır (hücreye sağ tıklayın -> Filtre -> Renge Göre). Ancak bu özelliği VBA olmadan ayrı bir sütuna çıkarmak mümkün değildir.
VBA fonksiyonu neden #AD? hatası veriyor?
Dosyanın .xlsm formatında kaydedildiğinden ve makroların etkinleştirildiğinden emin olun. Ayrıca formüldeki fonksiyon adının koddaki adla eşleştiğini kontrol edin (büyük/küçük harf önemli değildir ancak yazım hataları kabul edilemez).
Bu yöntem Excel Online'da çalışır mı? Hayır. Excel'in tarayıcı sürümü VBA makrolarının çalıştırılmasını desteklemez. Çevrimiçi modda renklerle çalışmak için yalnızca manuel yöntemleri veya koşullu biçimlendirme mantığını kullanmanız gerekecektir.