Pergunte aqui

Histórico de revisões [voltar]

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

Bom dia,

Vou te passar um código que utilizo para excel, veja se funciona. Obs.: Tentei converter ele para openoffice e não consegui.

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1    

Sub OrdenarPlanilhasPelosNomes()

    'Código para ordenação das planilhas de uma pasta de trabalho 'com base nos seus nomes

    Dim k           As Integer Dim i       As Integer Dim Tipo        As Integer Dim Mensagem    As String

    'Exibir caixa de mensagem para que o usuário possa selecionar 'o tipo de ordenação desejada

    Mensagem = "Pressione Sim para ordenação crescente" & vbLf & _ "e Não para ordenação decrescente" Tipo = MsgBox(Mensagem, vbYesNo + vbApplicationModal, _ "Ordenar planilhas")

    Select Case Tipo Case vbYes
        'Opção de ordenação crescente
        For k = 1 To ThisWorkbook.Sheets.Count
            For i = 1 To ThisWorkbook.Sheets.Count - 1
                If Sheets(i).Name > Sheets(i + 1).Name Then
                Sheets(i + 1).Move Before:=Sheets(i)
                End If
            Next i
        Next k Case vbNo 'Opção de ordenação decrescente
        For k = 1 To ThisWorkbook.Sheets.Count
            For i = 1 To ThisWorkbook.Sheets.Count - 1
                If Sheets(i).Name < Sheets(i + 1).Name Then
                Sheets(i + 1).Move Before:=Sheets(i)
                End If
            Next i
        Next k End Select

    End Sub

Bom dia,

Vou te passar um código que utilizo para excel, veja se funciona. Obs.: Tentei converter ele para openoffice e não consegui.

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1    
1

Sub OrdenarPlanilhasPelosNomes()

 'Código para ordenação das planilhas de uma pasta de trabalho 'com com base nos seus nomes

 Dim k           As Integer Integer
Dim i        As Integer Integer
Dim Tipo        As Integer Integer
Dim Mensagem    As String

 'Exibir caixa de mensagem para que o usuário possa selecionar 'o o tipo de ordenação desejada

 Mensagem = "Pressione Sim para ordenação crescente" & vbLf & _ _
"e Não para ordenação decrescente" decrescente"
Tipo = MsgBox(Mensagem, vbYesNo + vbApplicationModal, _ _
"Ordenar planilhas")

 Select Case Tipo Tipo
Case vbYes
     'Opção de ordenação crescente
     For k = 1 To ThisWorkbook.Sheets.Count
         For i = 1 To ThisWorkbook.Sheets.Count - 1
             If Sheets(i).Name > Sheets(i + 1).Name Then
             Sheets(i + 1).Move Before:=Sheets(i)
             End If
         Next i
     Next k k
Case vbNo vbNo
'Opção de ordenação decrescente
     For k = 1 To ThisWorkbook.Sheets.Count
         For i = 1 To ThisWorkbook.Sheets.Count - 1
             If Sheets(i).Name < Sheets(i + 1).Name Then
             Sheets(i + 1).Move Before:=Sheets(i)
             End If
         Next i
     Next k k
End Select

 End Sub

Fiz os testes no libreoffice que eu utilizo e deu certo