Hi M.A.I.T. the trouble you were having is that when using the range method Excel always works from the lowest cell to the highest cell so when you wrote
Excel (being helpful?) doesn't treat it as an error or work backwards, it interprets it as
Then you get the usual Shift problem (similar to what you get when deleting rows).
See the order produced by the code below
Code:
Sub Demo()
Dim c As Range
For Each c In Range("AM2:C2")
Debug.Print c.Column
Next
End Sub