bottom
Great ExcelTips!
         
Your e-mail address is safe!
Close Note

Tips.Net > ExcelTips Home > Formatting > Searching for Formatting > Making All Occurrences Bold

Making All Occurrences Bold

Summary: Do you need to change the formatting of all occurrences of a word in a worksheet? How you approach the task depends on two factors: the version of Excel you are using and the characteristics of the change you want to make. This tip describes the different ways you can tackle the problem. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, and Excel 2003.)

Tom rightly notes that in Word you can use Find and Replace to make all occurrences of a word bold. (Search for the word, replace it with the same word with bold formatting turned on.) He wonders how he can do the same thing in Excel.

The answer depends, in part, on the version of Excel you are using. If you are using Excel 2002 or Excel 2003, the answer is easy--you do it virtually the same way that you do in Word. Follow these steps:

  1. Press Ctrl+H to display the Replace tab of the Find and Replace dialog box.
  2. Click the Options button to expand the dialog box. (Click here to see a related figure.)
  3. In the Find What box, enter the word you want to make bold.
  4. Enter the same word in the Replace With box.
  5. Click the Format button to the right of the Replace With box. Excel displays the Replace Format dialog box.
  6. Click the Font tab. (Click here to see a related figure.)
  7. In the Font Style list, choose Bold.
  8. Click OK to close the Replace Font dialog box.
  9. Click Replace All to perform the replacements.

While this appears quite easy, you need to remember that these steps change the formatting of entire cells, not just words within a cell. Thus, if you were searching and replacing the word "brown," then any cell that contained the word "brown" would be made bold--the entire cell, not just the word.

If you are using an older version of Excel (Excel 97 or Excel 2000) or you want to only affect words within the cell, then these steps won't work. Instead you'll need to resort to a macro to do the bolding. Basically, you'll need a macro that looks through a worksheet and determines what can be changed. (You cannot make individual words or digits in formulas or numeric values bold; you can only make changes to the word-level formatting for text constants.)

Once the macro finds cells it can process, it needs to search through the cells for the desired word, and then make that text bold. The following macro implements this very strategy:

Sub FindAndBold()
    Dim sFind As String
    Dim rCell As Range
    Dim rng As Range
    Dim lCount As Long
    Dim iLen As Integer
    Dim iFind As Integer
    Dim iStart As Integer

    On Error Resume Next
    Set rng = ActiveSheet.UsedRange. _
      SpecialCells(xlCellTypeConstants, xlTextValues)
    On Error GoTo ErrHandler
    If rng Is Nothing Then
        MsgBox "There are no cells with text"
        GoTo ExitHandler
    End If

    sFind = InputBox( _
      Prompt:="What do you want to BOLD?", _
      Title:="Text to Bold")
    If sFind = "" Then
        MsgBox "No text was listed"
        GoTo ExitHandler
    End If

    iLen = Len(sFind)
    lCount = 0

    For Each rCell In rng
        With rCell
            iFind = InStr(.Value, sFind)
            Do While iFind > 0
                .Characters(iFind, iLen).Font.Bold = True
                lCount = lCount + 1
                iStart = iFind + iLen
                iFind = InStr(iStart, .Value, sFind)
            Loop
        End With
    Next

    If lCount = 0 Then
        MsgBox "There were no occurrences of" & _
          vbCrLf & "' " & sFind & " '" & _
          vbCrLf & "to bold."
    ElseIf lCount = 1 Then
        MsgBox "One occurrence of" & _
          vbCrLf & "' " & sFind & " '" & _
          vbCrLf & "was made bold."
    Else
        MsgBox lCount & " occurrences of" & _
          vbCrLf & "' " & sFind & " '" & _
          vbCrLf & "were made bold."
    End If

ExitHandler:
    Set rCell = Nothing
    Set rng = Nothing
    Exit Sub

ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub

The macro first sets the search range to those cells that contain text constants. It then prompts the user for a word that needs to be changed. Once entered, the macro then starts looking through all the cells in the range. Each cell is checked to see if it contains the target word. If so, then the .Bold property for those characters is set and the macro continues searching.

The macro also keeps track of how many changes were made, displaying the total changes at the end of its work.

Tip #2414 applies to Microsoft Excel versions: 97 | 2000 | 2002 | 2003


Tame Your Data! ExcelTips: Filters and Filtering provides all the details necessary to let you manage large sets of data with confidence and ease. Its information-packed pages demonstrate how to use the two types of filters provided by Excel: AutoFilters and advanced filters.
 
Check out ExcelTips: Filters and Filtering today!

Helpful Links

Ask an Excel Question
Make a Comment

Tips.Net Home

ExcelTips FAQ
ExcelTips Premium

Learn Access Now

Bugs and Pests Tips
ExcelTips
Family Tips
Health Tips
Home Tips
Organizing Tips
WordTips

Advertise on the
ExcelTips Site

 

Great Info!

Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your e-mail address and click "Subscribe."
     
(Your e-mail address will never be shared with anyone, ever.)