Pergunte aqui

Histórico de revisões [voltar]

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

Boa tarde,

Pegando minha sugestão para outra pergunta e adaptando para o seu caso, temos o seguinte:

Sub ClassificarColunas2
Dim oPlanilhaAtiva As Object, oIntervalo As Object
Dim oCamposdeClassif(0) as new com.sun.star.util.SortField
Dim oDescritorClassif(3) as new com.sun.star.beans.PropertyValue

    'Planilha ativa'
    oPlanilhaAtiva = ThisComponent.CurrentController.ActiveSheet

    'Campos (chaves) de classificação'
    oCamposdeClassif(0).Field = 0
    'Ordem crescente'
    oCamposdeClassif(0).SortAscending = True

    'Indica se NÃO (false) contém títulos/cabeçalhos'
    oDescritorClassif(0).Name = "ContainsHeader"
    oDescritorClassif(0).Value = False
    'Direção da classificação: da esquerda para a direita - colunas (true)'
    oDescritorClassif(1).Name = "IsSortColumns"
    oDescritorClassif(1).Value = True
    'A matriz de campos (chaves) de classif.'
    oDescritorClassif(2).Name = "SortFields"
    oDescritorClassif(2).Value = oCamposdeClassif()

    'Definir o Intervalo'
    oIntervalo = oPlanilhaAtiva.getCellRangeByName( "A1:E2" )
    'Classificar'
    oIntervalo.Sort( oDescritorClassif() )
End Sub


Atte,

Boa tarde,

Pegando minha sugestão para outra pergunta e adaptando para o seu caso, temos o seguinte:

Sub ClassificarColunas2
Dim oPlanilhaAtiva As Object, oIntervalo As Object
Dim oCamposdeClassif(0) as new com.sun.star.util.SortField
Dim oDescritorClassif(3) as new com.sun.star.beans.PropertyValue

    'Planilha ativa'
    oPlanilhaAtiva = ThisComponent.CurrentController.ActiveSheet

    'Campos (chaves) de classificação'
    oCamposdeClassif(0).Field = 0
    'Ordem crescente'
decrescente'
    oCamposdeClassif(0).SortAscending = True
False

    'Indica se NÃO (false) contém títulos/cabeçalhos'
    oDescritorClassif(0).Name = "ContainsHeader"
    oDescritorClassif(0).Value = False
    'Direção da classificação: da esquerda para a direita - colunas (true)'
    oDescritorClassif(1).Name = "IsSortColumns"
    oDescritorClassif(1).Value = True
    'A matriz de campos (chaves) de classif.'
    oDescritorClassif(2).Name = "SortFields"
    oDescritorClassif(2).Value = oCamposdeClassif()

    'Definir o Intervalo'
    oIntervalo = oPlanilhaAtiva.getCellRangeByName( "A1:E2" )
    'Classificar'
    oIntervalo.Sort( oDescritorClassif() )
End Sub


Atte,

Boa tarde,

Pegando Peguei minha sugestão para outra pergunta e adaptando adaptei para o seu caso, temos o seguinte:caso. Assumi que os valores estão na segunda linha (A2:E2) e que a descrição estão na primeira (A1:E1):

Sub ClassificarColunas2
Dim oPlanilhaAtiva As Object, oIntervalo As Object
Dim oCamposdeClassif(0) as new com.sun.star.util.SortField
Dim oDescritorClassif(3) as new com.sun.star.beans.PropertyValue

    'Planilha ativa'
    oPlanilhaAtiva = ThisComponent.CurrentController.ActiveSheet

    'Campos (chaves) de classificação'
    oCamposdeClassif(0).Field = 0
1 'segundo campo (no caso linha)'
    'Ordem decrescente'
    oCamposdeClassif(0).SortAscending = False

    'Indica se NÃO (false) contém títulos/cabeçalhos'
    oDescritorClassif(0).Name = "ContainsHeader"
    oDescritorClassif(0).Value = False
    'Direção da classificação: da esquerda para a direita - colunas (true)'
    oDescritorClassif(1).Name = "IsSortColumns"
    oDescritorClassif(1).Value = True
    'A matriz de campos (chaves) de classif.'
    oDescritorClassif(2).Name = "SortFields"
    oDescritorClassif(2).Value = oCamposdeClassif()

    'Definir o Intervalo'
    oIntervalo = oPlanilhaAtiva.getCellRangeByName( "A1:E2" )
    'Classificar'
    oIntervalo.Sort( oDescritorClassif() )
End Sub


Atte,