Como faço um macro para ordenar tendo apenas 1 coluna?

Quero fazer um botão para ordenar dados que estão na primeira coluna da tabela. Como posso fazer o macro??

Ola @JHONATHANCN , esclarecer, quer ordenar somente a PRIMEIRA COLUNA e NÃO mexer nas demais colunas ou quer que as demais colunas obedeçam a classificação da primeira coluna.

Boa Tarde Sr. Schiavinatto

Dando sequencia este topico, gostaria de uma macro para ordenar apenas uma coluna, apenas para números, grato

Ola @MauroMeira, poste um arquivo exemplo com a informação da coluna a classificar, fica mais fácil sugerir algo.

Ordenar.ods (10,0,KB)

Boa Tarde Sr. Schiavinatto

Minha intenção é a macro para ordenar uma única coluna de números, no caso do arquivo, a coluna B.

Grato.

Ola @MauroMeira , quer ordenara coluna B em alterar a coluna A?

Ou seja Mauro vai ficar com o numero 1, é isso?


Ou Quer classificar a Tabela ( Coluna A +B ), pela coluna B?

Sr. Schiavinatto, isso mesmo, apenas a coluna B seja alterada, Isso mesmo, Mauro vai ficar com o numero 1, grato

Sub OrdenarColunaB
	SortArea "Planilha1", "B2:B100", 0, "true"
End Sub
'' Ordenar Area = Sub SortArea "xPlan", "xRange", nCol, "xOrder"
Sub SortArea ( xPlan$, xRange$, nCol%, xOrder As Boolean )
' xPlan = Nome da Planilha
' xRange = Area da tabela.
' Ncol = Numero da coluna da area para classificar. ( 1a = 0 )
' xOrder = "true" ascendente / "false" descendente.
' Exemplo de uso: SortArea "Planilha1", "B10:N30", 1, "true"
' Necessário Ordenar mais de uma coluna, repita o comando começando com a ultima ordenação.
'------------------------------------------------------------------------------
Dim oSheet : Dim oRange
Dim oSortFields(0) as new com.sun.star.util.SortField
Dim oSortDesc(0) as new com.sun.star.beans.PropertyValue
oSheet = ThisComponent.getSheets.getByName( xPlan ) 'PLANILHA
oRange = oSheet.getCellRangeByName( xRange ) 'AREA
oSortFields(0).Field = nCol 'COLUNA DA TABELA  
oSortFields(0).SortAscending = xOrder 'ORDENAÇÃO
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
oRange.Sort(oSortDesc())
End Sub
1 Like

Boa Tarde Sr. Schiavinatto, ficou perfeito, muito obrigado pela ajuda