View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Robert H Robert H is offline
external usenet poster
 
Posts: 113
Default Limit .find to one pass

JE,
Reading my original post, I realize I did not explain the data
structure.
There is a header row with columns of data below it. I need to find
the columns with "LC" in the header cell and then perform the
manipulation in all the data cells in the column (below the header
cell).

You code sugestion code manipulates the cells containing "LC" in the
header row instead of the cells below the header row.
thanks
Robert


On Dec 18, 12:26*pm, JE McGimpsey wrote:
One way:

* * Dim rFound As Range
* * Dim sAddr As String
* * With ActiveSheet.Cells
* * * * Set rFound = .Find( _
* * * * * * * * what:="LC", _
* * * * * * * * after:=.Item(.Rows.Count, .Columns.Count), _
* * * * * * * * LookIn:=xlValues, _
* * * * * * * * Lookat:=xlPart, _
* * * * * * * * searchorder:=xlByColumns, _
* * * * * * * * searchdirection:=xlNext, _
* * * * * * * * MatchCase:=False)
* * * * If Not rFound Is Nothing Then
* * * * * * * * sAddr = rFound.Address
* * * * * * * * Do
* * * * * * * * * * With rFound
* * * * * * * * * * * * .Offset(0, 1).Value = Right$(.Text, 1)
* * * * * * * * * * * * .Value = Left$(.Text, Len(.Text) - 1)
* * * * * * * * * * End With
* * * * * * * * * * Set rFound = .FindNext(after:=rFound)
* * * * * * * * Loop Until rFound.Address = sAddr

* * * * End If
* * End With

In article
,
*Robert H wrote:



The following code loops through certain columns and removes the last
character in the data. *My data arrangement has changed a little and
now the code continuously loops through the data removing the last
character until there is not data. Its funny to watch but I need to
fix it...


How can I limit the code to make just one pass? Too bad there is not a
"before" attribute.


thanks
Robert


Do Until ActiveCell.Value = ""


* * * * Cells.Find(what:="LC", After:=ActiveCell, LookIn:=xlValues,
lookat:= _
* * * * * * xlPart, searchorder:=xlByColumns, SearchDirection:=xlNext,
MatchCase:=
* * * * * * False, SearchFormat:=False).Activate


* * * * * *ActiveCell.Offset(1, 0).Select


* * * * * * * * Do Until ActiveCell.Value = ""


* * * * * * * * * * 'Copy the right-most character to the next column
* * * * * * * * * * ActiveCell.Offset(0, 1).Value = Right$
(ActiveCell.Value, 1)
* * * * * * * * * * 'Cut off the right-most character
* * * * * * * * * * ActiveCell.Value = Left$(ActiveCell.Value, Len
(ActiveCell.Value) - 1)
* * * * * * * * * * 'ActiveCell = ActiveCell.Offset(1, 0)
* * * * * * * * * * ActiveCell.Offset(1, 0).Select
* * * * * * * * Loop
* * * ActiveCell.Offset(-r, 1).Select 'move up and to next column


Loop- Hide quoted text -


- Show quoted text -