Hi
I am not sure how you have 'selected' the cell for the interior coumn to start with, but I have assummed it is te active cell!
Also there seemed to be an error in you sort statement.
Based on this I have listed a moded routine below which basically remenbers the top and bottm row numbers and then selects them.
You can pick the bones from and mod as requied.
Code:
Sub sortgreen()
Dim TopRow As Integer
Dim BotRow As Integer
Dim i As Integer
Dim iCol As Integer
i = ActiveCell.Row
iCol = ActiveCell.Column
If Cells(i, iCol).Interior.ColorIndex = 35 Then
TopRow = i
i = i + 1
Do While Cells(i, iCol).Interior.ColorIndex = 35
i = i + 1
Loop
BotRow = i - 1
Rows("" & TopRow & ":" & BotRow & "").Select
Selection.Sort key1:=Range("B" & iCol), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
End Sub
MTB