This is not tested:
    For each rng in Selection.Areas
    OldData = rng.Value 'the values of the selected range is stored in OldData
    ReDim NewData(1 To rng.Rows.Count, 1 To rng.Columns.Count) 'Arrey for number of rows(value changes) and number of columns (value should always be 13) the user selected
    For I = 1 To UBound(OldData, 1) 'number of rows to process
        r = r + 1
            For J = UBound(OldData, 2) To 1 Step -1 'number of columns to proces
                C = C + 1
                NewData(r, C) = OldData(I, J) 'current row being processed from OldData. flips cell values about column "I" staring with the right side moving moving to the left. The values new location is stored in NewData.
            Next J
        C = 0
    Next I
    rng.Value = NewData 'the new value locations are applied to the current selection
next rng
Note: always use .Value (or .Value2)