Tak jsem s tím chvíli zápasil, přece jen ty objekty v OOo nejsou moc intuitivní. 
Není to moc blbuvzdorné, takže v buňce B20 na všech listech musí být číslo nikoli text, jinak to bude blbnout.
Makro je:
Sub SortSheetsByValue
    Dim oSheets 
    Dim oSheet1 as Variant
    Dim oSheet2 as Variant
    Dim i As Integer 
    Dim swap As Boolean 
    oSheets = ThisComponent.Sheets 
    If oSheets.getCount() > 1 Then 'Sorting for more than one sheet 
        Do 
            swap = False 'We continue bubble sort passes until no more swaps 
            For i = 0 to oSheets.getCount()-2 
                oSheet1 = oSheets.getByIndex(i)
                oSheet2 = oSheets.getByIndex(i+1)
                Sheet1Value = oSheet1.getCellbyPosition(1,19).Value
                Sheet2Value = oSheet2.getCellbyPosition(1,19).Value
                If Sheet1Value > Sheet2Value Then 
                    oSheets.moveByName(oSheets.getByIndex(i+1).Name,i) 
                    swap = True 
                End If 
            Next 
        Loop Until swap = False 
    End If 
End Sub
Praktická ukázka pak:
http://ooo.e-hanus.cz/Razeni_listu.01.ods
A chtěl jste to vlastně řadit sestupně, takže se v podmínce "If Sheet1Value > Sheet2Value Then" akotár přehodí relační operátor na <
Doplněno je to v:
http://ooo.e-hanus.cz/Razeni_listu.02.ods
						Editoval hanus (3. 8. 2009 07:33:16)