INSTR to find string value, need function to format only the value

Peteor

Board Regular
Joined
Mar 16, 2018
Messages
152
Hello! I am using the INSTR function to find all cells in a row where the string "Shall" occurs, and have 2 questions.

1. How do I make what it returns not case specific?
And
2. How do I apply formats to ONLY the word "Shall" (not the rest of the cell contents)?

Below is how far I have gotten here:

Sub Macro1()
Dim Cel As Range
Dim Rng As Range

Set Rng = Workbooks("Book1").Worksheets("Sheet1").Range("B2:B10000")

For Each Cel In Rng
If InStr(Cel.Value, "Shall") > 0 Then


End Sub
 

Excel Facts

How to show all formulas in Excel?
Press Ctrl+` to show all formulas. Press it again to toggle back to numbers. The grave accent is often under the tilde on US keyboards.
To make it case insensitive use
VBA Code:
If InStr(1, Cel.Value, "Shall", vbTextCompare) > 0 Then
What format do you want to apply?
Also is the cell text or a formula?
 
Upvote 0
Thank you again Fluff! You rock!

I want to make "Shall" all caps, bold, and change the font color to red.
 
Upvote 0
This will make it bold & red
VBA Code:
Sub Peteor()
   Dim Cel As Range, Rng As Range
   Dim x As Long
   
   Set Rng = Workbooks("Book1").Worksheets("Sheet1").Range("B2:B10000")
   
   For Each Cel In Rng
      x = InStr(1, Cel.Value, "Shall", vbTextCompare)
      If x > 0 Then
         With Cel.Characters(x, 5).Font
            .Bold = True
            .Color = vbRed
         End With
      End If
   Next Cel
End Sub
 
Upvote 0
This will change the word to caps as well
VBA Code:
Sub Peteor()
   Dim Cel As Range, Rng As Range
   Dim x As Long
   
   Set Rng = Workbooks("Book1").Worksheets("Sheet1").Range("B2:B10000")
   
   For Each Cel In Rng
      x = InStr(1, Cel.Value, "Shall", vbTextCompare)
      If x > 0 Then
         Cel = Replace(Cel, "Shall", "SHALL", , , vbTextCompare)
         With Cel.Characters(x, 5).Font
            .Bold = True
            .Color = vbRed
         End With
      End If
   Next Cel
End Sub
 
Upvote 0
Solution
This helps, however I think we are missing a couple small tweaks.

This works when "Shall is the 1st word in the Cel, but what about when it is not?

Also, when I ran the second one you sent, it changed all of the text in the Cel, rather than just "Shall".

Any ideas?
 
Upvote 0
This is what I get when I use that code.
+Fluff 1.xlsm
AB
4
5I shall do itI SHALL do it
6Shall I do itSHALL I do it
7Yes it shall beYes it SHALL be
8YesYes
9No you shall notNo you SHALL not
10
Main


The text colour hasn't come through but it is red
 
Upvote 0

Forum statistics

Threads
1,214,905
Messages
6,122,174
Members
449,071
Latest member
cdnMech

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