Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 12-17-2018, 08:26 PM
Guessed's Avatar
Guessed Guessed is offline Cell text color vs cell background color Windows 10 Cell text color vs cell background color Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 4,185
Guessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant future
Default

I think you are looking for a luminance value along the lines of https://stackoverflow.com/questions/...s-of-rgb-color

Expanding on that idea and making use of a function found here https://stackoverflow.com/questions/...color-property the basic concept with workings are...
Code:
Sub ShowLuminance()
  Dim iR As Long, iG As Long, iB As Long, Colour As Long, iColour As Long
  Dim rng As Range, cel As Range, Cel2 As Range, FirstAddress As String
  Dim sRGB As String
  
  Set rng = Worksheets("SHEET1").Range("I2:I" & Range("I" & Rows.Count).End(xlUp).Row)
  For Each cel In rng
    sRGB = Color(cel)
    cel.Offset(0, 1).Value = sRGB
    cel.Offset(0, 2).Value = Luminance(sRGB)
    If cel.Offset(0, 2).Value > 128 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next
End Sub

Function Color(rng As Range, Optional formatType As Integer = 2) As Variant
  Dim colorVal As Variant
  colorVal = Cells(rng.Row, rng.Column).Interior.Color
  Select Case formatType
    Case 1
      Color = Hex(colorVal)
    Case 2
      Color = (colorVal Mod 256) & "," & ((colorVal \ 256) Mod 256) & "," & (colorVal \ 65536)
    Case 3
      Color = Cells(rng.Row, rng.Column).Interior.ColorIndex
    Case Else
      Color = colorVal
  End Select
  
End Function

Function Luminance(str) As Long
  Dim iR As Integer, iG As Integer, iB As Integer, iRGB As Variant
  iRGB = Split(str, ",")
  Luminance = (0.299 * iRGB(0) + 0.587 * iRGB(1) + 0.114 * iRGB(2))
End Function
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote
 

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Set color and background of special bullet in table cell kkkwj Word VBA 2 05-08-2018 08:40 AM
Allow Cell Background Fill/Text Color Change while Protected Sheets are Grouped RaudelJr Excel 5 04-18-2017 11:11 PM
Cell text color vs cell background color Remove white text background (keeping the font color and page color intact cc3125 Word 1 10-26-2015 06:44 PM
Cell text color vs cell background color VBA Table – Search All Tables - Find & Replace Text in Table Cell With Specific Background Color jc491 Word VBA 8 09-30-2015 06:10 AM
Cell text color vs cell background color Cell Background Color: Base it on Content of Cell? tatihulot Excel 4 08-14-2013 03:24 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 01:25 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft