ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Format Text During Function (https://www.excelbanter.com/excel-programming/330886-format-text-during-function.html)

PJohnson

Format Text During Function
 
I have a function that transposes names.

Let's say for example that it is:

Smith Jr., James

It works fine but I would like to format (Make Bold and REd) the text in the
resultant cell if it meets a particular condition. I cannot figure out why
this does not work. The function works fine and returns the correct results
but does not format the text if the condition is met.

Any help appreciated...

- - - - - - - - - -- - - - - -
Public Function TransName(MyText) As String

Dim LName, FName As String
Dim Comma, Legnth, JrSuff As Byte

Length = Len(MyText)
Comma = InStr(1, MyText, ",")
Length = Length - Comma

JrSuff = InStr(1, MyText, "Jr")
'Debug.Print JrSuff

LName = Left(MyText, Comma - 1)
FName = Right(MyText, Length)

TransName = FName & " " & LName
TransName = Trim(TransName)

'==== THE FOLLOWING DOES NOT WORK=====

If JrSuff = 1 Then
Selection.Font.ColorIndex = 3
Selection.Font.Bold = True
End If
'========================================
End Function



Bernie Deitrick

Format Text During Function
 

PJohnson,

"=== THE FOLLOWING DOES NOT WORK====="

because a function can only return a value to the calling cell, and cannot
otherwise change the Excel environment (such as font color or style).

You would need to use a macro or worksheet event to achieve your results.

HTH,
Bernie
MS Excel MVP


"PJohnson" wrote in message
news:5G0oe.27388$iU.19471@lakeread05...
I have a function that transposes names.

Let's say for example that it is:

Smith Jr., James

It works fine but I would like to format (Make Bold and REd) the text in

the
resultant cell if it meets a particular condition. I cannot figure out why
this does not work. The function works fine and returns the correct

results
but does not format the text if the condition is met.

Any help appreciated...

- - - - - - - - - -- - - - - -
Public Function TransName(MyText) As String

Dim LName, FName As String
Dim Comma, Legnth, JrSuff As Byte

Length = Len(MyText)
Comma = InStr(1, MyText, ",")
Length = Length - Comma

JrSuff = InStr(1, MyText, "Jr")
'Debug.Print JrSuff

LName = Left(MyText, Comma - 1)
FName = Right(MyText, Length)

TransName = FName & " " & LName
TransName = Trim(TransName)

'==== THE FOLLOWING DOES NOT WORK=====

If JrSuff = 1 Then
Selection.Font.ColorIndex = 3
Selection.Font.Bold = True
End If
'========================================
End Function





Ron Rosenfeld

Format Text During Function
 
On Fri, 3 Jun 2005 13:38:11 -0400, "PJohnson" wrote:

I have a function that transposes names.

Let's say for example that it is:

Smith Jr., James

It works fine but I would like to format (Make Bold and REd) the text in the
resultant cell if it meets a particular condition. I cannot figure out why
this does not work. The function works fine and returns the correct results
but does not format the text if the condition is met.

Any help appreciated...


A function can ONLY return a value. It cannot alter properties. (nor can it
call a SUB to do that alteration, a far as I know).

Perhaps you could use conditional formatting to accomplish your goals.


--ron


All times are GMT +1. The time now is 09:51 AM.

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