ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   TRIM function - for the whole sheet (https://www.excelbanter.com/excel-programming/280113-trim-function-whole-sheet.html)

Shetty

TRIM function - for the whole sheet
 
Request your guidance on how can I execute the trim
function for all the cells in a sheet. Is there any VB
code or macro which can do this?

Regards,

No Name

TRIM function - for the whole sheet
 
It would take a long time to complete. you might be better
selecting the range and working with that.

Sub TrimSelection()

For Each c In Selection
c.Value = Trim(c)
Next c

End Sub

Sub TrimRange()
Dim rng As Range
Set rng = Range("A1:z22") 'change this to suit
For Each c In rng
c.Value = Trim(c)
Next c
End Sub

Regards
Peter

-----Original Message-----
Request your guidance on how can I execute the trim
function for all the cells in a sheet. Is there any VB
code or macro which can do this?

Regards,
.


Alan Howells

TRIM function - for the whole sheet
 
You can use the UsedRange property of the Worksheet object. This will return
the maximum range (in one area) that is used. So you won't have to go
through the entire worksheet (most of it is not actually used).

Set rng = ActiveWorksheet.UsedRange

Alan

wrote in message
...
It would take a long time to complete. you might be better
selecting the range and working with that.

Sub TrimSelection()

For Each c In Selection
c.Value = Trim(c)
Next c

End Sub

Sub TrimRange()
Dim rng As Range
Set rng = Range("A1:z22") 'change this to suit
For Each c In rng
c.Value = Trim(c)
Next c
End Sub

Regards
Peter

-----Original Message-----
Request your guidance on how can I execute the trim
function for all the cells in a sheet. Is there any VB
code or macro which can do this?

Regards,
.




Shetty

TRIM function - for the whole sheet
 
Thanks Alan and Peter.
I will try out right now and let you know the results. But
I think this is exectly what I want and it must work.

Thanks again.
Shetty

-----Original Message-----
You can use the UsedRange property of the Worksheet

object. This will return
the maximum range (in one area) that is used. So you

won't have to go
through the entire worksheet (most of it is not actually

used).

Set rng = ActiveWorksheet.UsedRange

Alan

wrote in message
...
It would take a long time to complete. you might be

better
selecting the range and working with that.

Sub TrimSelection()

For Each c In Selection
c.Value = Trim(c)
Next c

End Sub

Sub TrimRange()
Dim rng As Range
Set rng = Range("A1:z22") 'change this to suit
For Each c In rng
c.Value = Trim(c)
Next c
End Sub

Regards
Peter

-----Original Message-----
Request your guidance on how can I execute the trim
function for all the cells in a sheet. Is there any VB
code or macro which can do this?

Regards,
.



.


Tom Ogilvy

TRIM function - for the whole sheet
 
You can narrow down the magnitude of your work by only working on string
constants

Dim rng as Range, cell as Range
On error resume next
set rng = ActiveSheet.Cells.SpecialCells(xlConstants,xlTextV alues)
On Error goto 0
if not rng is nothing then
for each cell in rng
cell.Value = application.Trim(cell.Value)
Next
Else
msgbox "No text values found"
End if


--
Regards,
Tom Ogilvy


"Shetty" wrote in message
...
Thanks Alan and Peter.
I will try out right now and let you know the results. But
I think this is exectly what I wantAmust work.

Thanks again.
Shetty

-----Original Message-----
You can use the UsedRange property of the Worksheet

object. This will return
the maximum range (in one area) that is used. So you

won't have to go
through the entire worksheet (most of it is not actually

used).

Set rng = ActiveWorksheet.UsedRange

Alan

wrote in message
...
It would take a long time to complete. you might be

better
selecting the range and working with that.

Sub TrimSelection()

For Each c In Selection
c.Value = Trim(c)
Next c

End Sub

Sub TrimRange()
Dim rng As Range
Set rng = Range("A1:z22") 'change this to suit
For Each c In rng
c.Value = Trim(c)
Next c
End Sub

Regards
Peter

-----Original Message-----
Request your guidance on how can I execute the trim
function for all the cells in a sheet. Is there any VB
code or macro which can do this?

Regards,
.



.




ssexcel

TRIM function - for the whole sheet
 
Tom Ogilvy wrote:
You can narrow down the magnitude of your work by only working on
string
constants

Dim rng as Range, cell as Range
--
Regards,
Tom Ogilvy


Tom,

Thanks for your wonderful explanations and your various posts helping
people like us.

I need to ask you help on these 2 things:

1. If I want to apply the code only to a particular column and not the
whole sheet (not ALL) how do I do it ? I want to apply worksheet
function proper to a column named NAME.

2. Second question when I use Proper function in Excel (97?) it does
not change these names properly. How do I achieve this

joan vannocker-sampson should be Joan VanNocker-Sampson john d mckeon
should be John D McKeon
arthur l dewyse should be Arthur L DeWyse

Thanks in advance.



------------------------------------------------
~~ Message posted from http://www.ExcelTip.com/
~~ View and post usenet messages directly from http://www.ExcelForum.com/


Tom Ogilvy

TRIM function - for the whole sheet
 
Is Name a defined name such as Insert=Name=Define or do you mean the
column has the word Name in the first row. This should handle both, but you
could remove what is not appropriate.

Dim rng as Range, cell as Range
Dim rng1 as Range
On Error Resume Next
set rng1 = Thisworkbook.Names("Name").RefersToRange
On Error goto 0
if rng1 is nothing then
for i = 1 to 256
if lcase(cells(1,i).Value) = "name" then
set rng1 = Cells(1,i).EntireColumn.Cells
exit for
End if
Next
End if
if rng1 is nothing then
msgbox "Can't find column"
Exit Sub
End if
On error resume next
set rng = ActiveSheet.Cells.SpecialCells(xlConstants,xlTextV alues)
On Error goto 0
if not rng is nothing then
for each cell in rng
cell.Value = strConv(application.Trim(cell.Value),vbProperCase)
Next
Else
msgbox "No text values found"
End if


Proper and StrConv with the vbProperCase argument are not smart enough to
know capitalization rules for Names. The just capitalize the first letter
of each word.

I think you would need some type of dictionary that list all the unique
capitalizations or code the rules.

--
Regards,
Tom Ogilvy


"ssexcel" wrote in message
...
Tom Ogilvy wrote:
You can narrow down the magnitude of your work by only working on
string
constants

Dim rng as Range, cell as Range
--
Regards,
Tom Ogilvy


Tom,

Thanks for your wonderful explanations and your various posts helping
people like us.

I need to ask you help on these 2 things:

1. If I want to apply the code only to a particular column and not the
whole sheet (not ALL) how do I do it ? I want to apply worksheet
function proper to a column named NAME.

2. Second question when I use Proper function in Excel (97?) it does
not change these names properly. How do I achieve this

joan vannocker-sampson should be Joan VanNocker-Sampson john d mckeon
should be John D McKeon
arthur l dewyse should be Arthur L DeWyse

Thanks in advance.



------------------------------------------------
~~ Message posted from http://www.ExcelTip.com/
~~ View and post usenet messages directly from http://www.ExcelForum.com/




ssexcel[_2_]

TRIM function - for the whole sheet
 
Tom Ogilvy wrote:
Is Name a defined name such as Insert=Name=Define or do you mean
the
column has the word Name in the first row. This should handle both,
but you
could remove what is not appropriate.
Proper and StrConv with the vbProperCase argument are not smart
enough to
know capitalization rules for Names. The just capitalize the first
letter
of each word.

I think you would need some type of dictionary that list all the
unique
capitalizations or code the rules.



Thanks for your response. I meant the column with heading Name. I
would come back to you in case I face any difficulty.

Best regards



------------------------------------------------
~~ Message posted from http://www.ExcelTip.com/
~~ View and post usenet messages directly from http://www.ExcelForum.com/



All times are GMT +1. The time now is 05:25 PM.

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