Ok then, just expanding on Don's answer a bit to use specialcells where you are
able, but looping through all if not:-
Sub LeadingLtr()
Dim rng As Range
Dim c As Range
Dim cnt As Long
Dim cntdat As Long
Set rng = Cells.SpecialCells(xlCellTypeConstants, 23)
If rng.Areas.Count > 1 Then
For Each c In rng
c.Value = "HD:" & c
Next
Else
Set rng = ActiveSheet.UsedRange
cnt = rng.Rows.Count * rng.Columns.Count
cntdat = 1
For Each c In rng
Application.StatusBar = "Approx " & Round((cntdat / cnt) * 100, 0) & "%
complete"
cntdat = cntdat + 1
If Len(c) > 0 Then c.Value = "HD:" & c
Next
Application.StatusBar = False
End If
End Sub
Special cells work a lot quicker than looping through the entire range, but you
have to be careful that if you have more than 8,192 non-contiguous areas and you
use the specialcells method it will return just one area and you won't want this
to be applied to all the blanks within that area, so the routine checks to see
how many areas you have, and if you actually have more than 8,192 Specialcells
will report that you only have 1, so it will default to looping, but if less
then it will use the specialcells method.