Classificar Linhas no Calc em VBA

Estou com o seguinte problema: Preciso em VBA classificar várias linhas, para isso criei um for/next. Até aí tudo trabalha bem, porém, a cada nova linha a ser classificada aparece um popup perguntando se desejo expandir as células selecionadas para o conjunto inteiro. É inviável ficar clicando para responder a centenas de linhas.

Pergunta: Como faço para suprimir este popup e assim a classificação ocorrer naturalmente até a última linha?

Segue abaixo como está atualmente.

sub Organizar
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

dim args1(0) as new com.sun.star.beans.PropertyValue
dim args2(7) as new com.sun.star.beans.PropertyValue

For j= 3 to 1003
args1(0).Name = “ToPoint”
args1(0).Value = “$A$” & j & “:$O$” & j

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

args2(0).Name = "ByRows"
args2(0).Value = false
args2(1).Name = "HasHeader"
args2(1).Value = false
args2(2).Name = "CaseSensitive"
args2(2).Value = false
args2(3).Name = "NaturalSort"
args2(3).Value = false
args2(4).Name = "IncludeAttribs"
args2(4).Value = true
args2(5).Name = "UserDefIndex"
args2(5).Value = 0
args2(6).Name = "Col1"
args2(6).Value = j
args2(7).Name = "Ascending1"
args2(7).Value = false

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args2())

Next j
end sub

Olá,

Pergunta: Como faço para suprimir este
popup e assim a classificação ocorrer
naturalmente até a última linha?

Não sei como fazer isso via dispatcher (gravador de macro), mas escrevendo a rotina pela LibO Basic + API UNO é possível classificar cada linha sem contudo disparar o popup.

Sub ClassificarLinhas
Dim oPlanilhaAtiva As Object
Dim oIntervaloLinha 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.getCurrentController().getActiveSheet()

	'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()

	'Percorre as linhas classificando de acordo com os parâmetros
	For J = 3 To 1003
		oIntervaloLinha = oPlanilhaAtiva.getCellRangeByName( "A" & J & ":O" & J )
		oIntervaloLinha.Sort( oDescritorClassif() )
	Next J
End Sub

O código está comentado, então não preciso acrescentar muita coisa. Apenas que, ao invocar a classificação linha a linha, como são aprox. 1000, a macro consumirá um certo tempo para completar o loop.

Mesmo assim, acredito que ela atenderá o seu caso.

Atte,
Graveno