Pergunte aqui

Histórico de revisões [voltar]

clique para ocultar/mostrar a revisão 1
Versão inicial

Boa noite,

Veja se o exemplo abaixo te ajuda. Ele classifica o intervalo A1:C10 na Planilha1 pela coluna A, em ordem crescente.

Sub Classificar
Dim oDoc as Object, oPlan as Object, oIntervalo as Object

   'Definir a planilha'
   oDoc = ThisComponent
   oPlan = oDoc.Sheets.getByName( "Planilha1" )

   'Definir o intervalo'
   oIntervalo = oPlan.getCellRangeByName( "A1:C10" ) 

   'Campos de classificação'
   Dim mCampos(0) as New com.sun.star.util.SortField
   mCampos(0).Field = 0 'Equivale a coluna A'
   mCampos(0).SortAscending = True 'Crescente'

   'Descrever a classificação'
   Dim mDescricao(1) As New com.sun.star.beans.PropertyValue   
   mDescricao(0).Name = "ContainsHeader"
   mDescricao(0).Value = True 'Tem rótulos de coluna'
   mDescricao(1).Name = "SortFields"
   mDescricao(1).Value = mCampos()

   'classificar o intervalo'
   oIntervalo.Sort( mDescricao )
End Sub

Teste e comente...

Atte,

Boa noite,

Veja se o exemplo abaixo te ajuda. Ele Agora correto, uma macro que classifica o intervalo as A1:C10planilhas (abas) na Planilha1 pela coluna A, em ordem crescente.alfabética:

Sub Classificar
ClassificarAbas
Dim oDoc as Object, oPlan as Object, oIntervalo oPlanilhas as Object
Dim mAbas as Variant, mOrdem as Variant
 'Definir a planilha'
'Obter os nomes'
   oDoc = ThisComponent
   oPlan oPlanilhas = oDoc.Sheets.getByName( "Planilha1" oDoc.Sheets
   mAbas = oPlanilhas.ElementNames

   ' Carregar o biblioteca Tools'
   If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then
     GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
   End If

   ' Função da biblioteca Tools que classifica listas'
   mOrdem = BubbleSortList( mAbas )

   'Definir o intervalo'
' Colocar as abas na ordem'
 oIntervalo For i = oPlan.getCellRangeByName( "A1:C10" ) 

0 to UBound( mOrdem )
 'Campos de classificação'
 Dim mCampos(0) as New com.sun.star.util.SortField
oPlanilhas.MoveByName( mOrdem(i), i )
 mCampos(0).Field = 0 'Equivale a coluna A'
   mCampos(0).SortAscending = True 'Crescente'

   'Descrever a classificação'
   Dim mDescricao(1) As New com.sun.star.beans.PropertyValue   
   mDescricao(0).Name = "ContainsHeader"
   mDescricao(0).Value = True 'Tem rótulos de coluna'
   mDescricao(1).Name = "SortFields"
   mDescricao(1).Value = mCampos()

   'classificar o intervalo'
   oIntervalo.Sort( mDescricao )
Next i
End Sub

Teste e comente...

Atte,