View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Mike H Mike H is offline
external usenet poster
 
Posts: 11,501
Default Macro for bolding and italicizing word strings

Hi,

What it does is look for a V that isn't the first letter in a cell. It then
checks there is a space both before and after the v and then bolds/italicises
the parts before and after the v. the font for the v is left as normal.

Your correct I didn't account for the period I missed that but all that
means is the period will be bold and the code revision below cures that. If
it isn't doing that for you then I'm confused. Post some sample data.

Sub Prime_Lending()
For Each c In ActiveSheet.UsedRange
If WorksheetFunction.IsText(c) Then
Findv = InStr(UCase(c.Value), "V")
If Findv <= 1 Then GoTo getmeout
If Mid(c.Value, Findv - 1, 1) < " " Or Mid(c.Value, _
Findv + 1, 1) < " " And Mid(c.Value, Findv + 1, 1) < _
"." Then GoTo getmeout
With c.Characters(Start:=1, Length:=Len(c.Value)).Font
.FontStyle = "Bold Italic"
End With
With c.Characters(Start:=Findv, Length:=2).Font
.FontStyle = "Regular"
End With
End If
getmeout:
Next
End Sub

Mike

"suestew" wrote:

I ran your macro and it bolded and italicized all the words in the same cell
as a "v". I don't think you accounted for the period after the v. in "v."

How do I undo a macro?

"Mike H" wrote:

Hi,

I hope it's a typo and you don't want the v in italics because I just read
your post again before replying and the first part contradicts the last.
having written the code I'll post it anyway. Alt +F11 to open VB editor,
right click 'This workbook' and insert module and paste this in and run it

Sub Prime_Lending()
For Each c In ActiveSheet.UsedRange
If WorksheetFunction.IsText(c) Then
Findv = InStr(UCase(c.Value), "V")
If Findv <= 1 Then GoTo getmeout
If Mid(c.Value, Findv - 1, 1) < " " And Mid(c.Value, _
Findv + 1, 1) < " " Then GoTo getmeout
With c.Characters(Start:=1, Length:=Len(c.Value)).Font
.FontStyle = "Bold Italic"
End With
With c.Characters(Start:=Findv, Length:=1).Font
.FontStyle = "Regular"
End With
End If
getmeout:
Next
End Sub

Mike
"suestew" wrote:

I want to bold and italicize every word that comes directly before or after
"v."

For example, my sheet is full of cases cited as "Smith v. Jones" etc. I
want everything on each side of "v." to be bolded and italicized, including
the "v."