ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Macro for bolding and italicizing word strings (https://www.excelbanter.com/excel-programming/420947-macro-bolding-italicizing-word-strings.html)

suestew

Macro for bolding and italicizing word strings
 
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."

dksaluki

Macro for bolding and italicizing word strings
 
...."including the v."? So you want the whole cell bold/italics?

Mike H

Macro for bolding and italicizing word strings
 
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."


suestew

Macro for bolding and italicizing word strings
 
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."


Ron Rosenfeld

Macro for bolding and italicizing word strings
 
On Sat, 6 Dec 2008 11:25:00 -0800, 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."


Your description is a bit confusing.

If the case description occupies the entire cell, you could use conditional
formatting.

--ron

Mike H

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."



All times are GMT +1. The time now is 09:21 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com