I have a macro to select a range based on various criteria either being true or false. Whichever range is selected, I would then like to datasort that range ONLY. Unfortunately i can't seem to get my code to reference a variable area to data sort.

Sub DATA_SORT()


    Dim rng     As Range

    If Range("I11") = True Then
        Set rng = Range("K12:AR190")
    ElseIf Range("I10") = True Then
        Set rng = Range("K11:AR190")
    ElseIf Range("I9") = True Then
        Set rng = Range("K10:AR190")
    ElseIf Range("I8") = True Then
        Set rng = Range("K9:AR190")
    ElseIf Range("I7") = True Then
        Set rng = Range("K8:AR190")
    ElseIf Range("I6") = True Then
        Set rng = Range("K7:AR190")
    ElseIf Range("I5") = True Then
        Set rng = Range("K6:AR190")
    ElseIf Range("I4") = True Then
        Set rng = Range("K5:AR190")
    Else
        Set rng = Range("K4:AR190")
    End If

    rng.Sort Key1:=Range("AG4"), Order1:=xlAscending, Header:=xlNo, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
The part that is causing me problems is:

   rng.Sort Key1:=Range("AG4"), Order1:=xlAscending, Header:=xlNo, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
A friend suggested changing the Range("AG4") part to Range("AG"+rng) or possibly Range("AG".rng) neither of which work.

Appreciate any suggestions you guys may have!

Thanks
Forcybo