It all seems to hinge on this line:
Range("C1:I29").Select
How is this range determined?
Is it all the rows that have been imported (after deleting the first
17 rows) or is it a number of rows selected by you manually? I don't
want to waste my time or yours altering your code inappropriately.
If it's the former I'll be using the vba equivalent of pressing the
end key followed by one of the arrow keys, if it's the latter I may
arrange for you to select which rows are to be processed before the
macro is run.