I've got the following piece of code that picks up a graphical "up arrow", and replaces any cells with the value of "U" with this graphic.

VB Code:
  1. intY = 1
  2.         intX = 0
  3.         .Range("K8").Select
  4.         .ActiveSheet.Shapes("UpArrow").Select
  5.         .Selection.Copy
  6.        
  7.         On Error GoTo Next_Type
  8.         With .ActiveSheet
  9.                 .Cells.Find(What:="U", After:=objExcel.ActiveCell, LookIn:=xlFormulas, LookAt _
  10.                     :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
  11.                     False).Activate
  12.             Do Until intX >= intY
  13.                 intX = objExcel.ActiveCell.row - 1
  14.                 tmpRow = intX
  15.                 tmpCol = objExcel.ActiveCell.Column
  16.                 objExcel.Selection.PasteSpecial xlPasteAll
  17.                 .Cells.FindNext(After:=objExcel.ActiveCell).Activate
  18.                 If tmpRow = objExcel.ActiveCell.row - 1 And tmpCol = objExcel.ActiveCell.Column Then Exit Do
  19.                 intY = objExcel.ActiveCell.row
  20.             Loop
  21.         End With

The problem I've got is this .... if the only "U" cells are on the same row then the routine goes round and round in circles.
It is unlikely, unfortunately it HAS just happened (typical Monday !) !!!

I don't actually like this way of doing things anyway, as it searches row by row and takes a few minutes to complete.

Does anyone know of a better way of replacing "U" cells with my "UpArrow" graphic ?

A single Find/Replace after highlighting the affected rows would be ideal, but I don't know how to assign my "UpArrow" graphic in the "Replace" box (I'm assuming you can't do it this way).

Can anyone help ?

Thanks in advance ....