VBA: Change text colour to red

harky

Active Member
Joined
Apr 8, 2010
Messages
405
Office Version
  1. 2021
  2. 2019
Platform
  1. Windows
Hi,
I need a function not macro.

to change Column I , ERROR! to red.

e.g

ERROR! Pls check the file
ERROR! Pls check the folder

I know can use conditional formulas but conditional dont found at older excel format.
SO i like to use vba
 
Last edited:

Excel Facts

Waterfall charts in Excel?
Office 365 customers have access to Waterfall charts since late 2016. They were added to Excel 2019.
Code:
Public Sub changeColor() 

Set wks = Worksheets("sheet1")
wks.Range("I" & i)
.Characters.Text = "ERROR!"
Font.ColorIndex = 3 

End Sub
 
Last edited:
Upvote 0
How about
Code:
Sub harky()
   Dim Cl As Range
   Dim x As Long
   With Sheets("Sheet1")
      For Each Cl In .Range("I1", .Range("I" & Rows.Count).End(xlUp))
         x = InStr(1, Cl, "ERROR", vbTextCompare)
         If x > 0 Then Cl.Characters(x, 5).Font.Color = vbRed
      Next Cl
   End With
End Sub
 
Upvote 0
This work great but possible not as MACRO?

As long i open the excel it auto highlighted it?

How about
Code:
Sub harky()
   Dim Cl As Range
   Dim x As Long
   With Sheets("Sheet1")
      For Each Cl In .Range("I1", .Range("I" & Rows.Count).End(xlUp))
         x = InStr(1, Cl, "ERROR", vbTextCompare)
         If x > 0 Then Cl.Characters(x, 5).Font.Color = vbRed
      Next Cl
   End With
End Sub
 
Upvote 0
Sorry but I don't understand what you mean.
 
Upvote 0
Automatically run a macro when opening a excel

I try to set Private Sub but it dont works

Sorry but I don't understand what you mean.
 
Last edited:
Upvote 0
In that case use
Code:
Private Sub Workbook_Open()
   Dim Cl As Range
   Dim x As Long
   With Sheets("Sheet1")
      For Each Cl In .Range("I1", .Range("I" & Rows.Count).End(xlUp))
         x = InStr(1, Cl, "ERROR", vbTextCompare)
         If x > 0 Then Cl.Characters(x, 5).Font.Color = vbRed
      Next Cl
   End With
End Sub
and put it in the ThisWorkbook module
 
Upvote 0
ah.. cool. this work great..
Thank u!!!!!!!

In that case use
Code:
Private Sub Workbook_Open()
   Dim Cl As Range
   Dim x As Long
   With Sheets("Sheet1")
      For Each Cl In .Range("I1", .Range("I" & Rows.Count).End(xlUp))
         x = InStr(1, Cl, "ERROR", vbTextCompare)
         If x > 0 Then Cl.Characters(x, 5).Font.Color = vbRed
      Next Cl
   End With
End Sub
and put it in the ThisWorkbook module
 
Upvote 0
You're welcome & thanks for the feedback
 
Upvote 0
Hi, i just notice the code,

If my column was highlighted in black at the beginning. it will show this BUT
I
Status
ERROR Pls check the file

<tbody>
</tbody>



If i re-activate my exiting MACRO and re-fill the column again. It will highlight the whole text in red.
I
Status
ERROR Pls check the file

<tbody>
</tbody>

You're welcome & thanks for the feedback

 
Last edited:
Upvote 0

Forum statistics

Threads
1,213,485
Messages
6,113,931
Members
448,533
Latest member
thietbibeboiwasaco

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top