View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.misc
CB CB is offline
external usenet poster
 
Posts: 97
Default Five plus mintues to execute

Excellent solution, worked like a charm, thanks!

I am new to Macros, can you tell me why this way is so much quicker?


"Joel" wrote:

This will make it quicker

Application.ScreenUpdating = False
For Each cell In Range("B7:K500")
Data = cell.value
Do While Left(Data, 1) = ","
Data = Right(Data, Len(Data) - 1)
Loop
cell.value = Data
Next
Application.ScreenUpdating = True

"CB" wrote:

The code runs through each cell in the specified range and checks the first
character in the string and If that character is a "," then it is deleted.

There are instances where there may be multiple commas before any actual
text so it runs until no comma precedes text.

Example:
I may have ",,,Blue,,Green,Yellow" In one cell

After this portion of code is run I only have "Blue,,Green,Yellow" all of
the commas in the beginning have been removed (commas later in the string are
OK)

Hopefully that is a good enough explanation


"Harald Staff" wrote:

Every time you change a cell value, the whole workbook recalculates.
I'd need to know what the code is supposed to do and why, to suggest
something.

Best wishes Harald


"CB" wrote in message
...
Can anyone tell me why this piece of code is taking over five minutes to
execute. I actually don't know the total time it takes because I keep
giving
up after waiting about five minutes...


For Each cell In Range("B7:K500")
Do While Left(cell.Value, 1) = ","
cell.Value = Right(cell.Value, Len(cell.Value) - 1)
Loop
Next

If anyone could tell me a more efficient way to write the code I would
appreciate it. This is a small part of a larger macro that I would like to
run in under one minute.

Thanks