Classifique as planilhas em uma pasta de trabalho usando VBA no Microsoft Excel

Anonim

Neste artigo, fornecemos detalhes sobre como classificar as planilhas na pasta de trabalho em ordem crescente ou decrescente, dependendo do nome da planilha.

Na pasta de trabalho em anexo, existem dois módulos: -

Módulo 1 contém a macro “SortWorksheets” que é atribuída ao botão “Enviar” na planilha “Macro”.

Esta macro ordena todas as planilhas exceto a primeira planilha que é a planilha principal denominada “Macro”.

Quando o usuário clica no botão “Enviar”, todas as planilhas após a planilha “Macro” serão classificadas em ordem crescente ou decrescente conforme escolhido pelo usuário na caixa de combinação.

Módulo 2 contém duas macros “AscendingSortOfWorksheets” e “DecendingSortOfWorksheets”. Ao executar a macro “AscendingSortOfWorksheets”, ele classificará todas as planilhas presentes na pasta de trabalho em ordem crescente. Ao executar a macro “DecendingSortOfWorksheets”, ele classificará todas as planilhas presentes na pasta de trabalho em ordem decrescente.

Explicação lógica

O algoritmo de classificação de bolhas é usado para classificar as planilhas na pasta de trabalho.

O algoritmo de classificação por bolha compara cada item na matriz com outro item na matriz e os troca, dependendo da classificação em ordem crescente ou decrescente. Em cada etapa, ele irá borbulhar o menor ou o maior valor no topo da matriz. O algoritmo se repete até que todos os itens sejam classificados.

Neste artigo, nosso objetivo é classificar as planilhas na pasta de trabalho por seus nomes. A pasta de trabalho que estamos usando consiste em diferentes planilhas com nomes como Painel financeiro, Recursos humanos e Painel de vendas.

Para atingir esse objetivo, usamos o algoritmo de classificação por bolha para classificar as planilhas.

Explicação do código

Macro SortWorksheets

Esta macro será executada quando o usuário clicar no botão enviar. Esta macro irá classificar todas as planilhas na pasta de trabalho por seus nomes, exceto a primeira planilha na pasta de trabalho. Dependendo do valor selecionado pelo usuário na caixa de combinação, ele classificará as planilhas em ordem crescente ou decrescente.

Para adicionar a caixa de combinação, siga as etapas abaixo: -

  1. Vá para a guia Desenvolvedor> Clique em Inserir> Clique no ícone da caixa de combinação sob o controle do formulário

  1. Clique com o botão direito na caixa de combinação e clique em controle de formato.

  1. Vá para a guia de controle, atribua o item e vincule a caixa de combinação à célula XFC1.

ComboBoxValue = Range ("XFC1"). Valor

A caixa de combinação na planilha “Macro” está vinculada à célula XFC1. Portanto, para obter o valor da célula XFC1, a variável ComboBoxValue é usada.

Para i = 2 para SCount - 1

O loop FOR começa com a variável i, o valor começa em 2, pois queremos excluir a primeira planilha da pasta de trabalho da classificação.

Se ComboBoxValue = 1 Then

A condição IF é usada para verificar se a classificação deve ser feita em ordem crescente ou decrescente. O valor IF ComboBoxValue é 1, então classifique em ordem crescente, caso contrário, em ordem decrescente.

Planilhas classificadas em ordem crescente

Planilhas classificadas em ordem decrescente

AscendingSortOfWorksheets e DecendingSortOfWorksheets

As macros AscendingSortOfWorksheets e DecendingSortOfWorksheets podem ser executadas pressionando a tecla de atalho Alt + F8 ou Vá para a guia Desenvolvedor> Clique na Macro> selecione a macro e clique em Executar. Eles classificarão todas as planilhas presentes na pasta de trabalho. Essas macros também podem ser executadas em outras pastas de trabalho.

Planilhas classificadas após executar a macro AscendingSortOfWorksheets

Planilhas classificadas em ordem crescente Macro DecendingSortOfWorksheets

Siga abaixo para o código

 Sub AscendingSortOfWorksheets () 'Classificar planilhas em uma pasta de trabalho em ordem crescente Dim SCount, i, j As Integer' Para desativar atualizações de tela Application.ScreenUpdating = False 'Obtendo total no. de planilhas na pasta de trabalho SCount = Worksheets.Count 'Verificando a condição se a contagem de planilhas é maior que 1, se a contagem for um, saia do procedimento If SCount = 1 Then Exit Sub' Usando classificação de bolha como algoritmo de classificação 'Looping por todas as planilhas para i = 1 To SCount - 1 'Fazendo comparação do nome da folha selecionada com outras folhas para mover a folha selecionada para a posição apropriada Para j = i + 1 To SCount If Worksheets (j) .Nome  Worksheets (i) .Name Then Worksheets (j) .Mover Before: = Worksheets (i) End If Next j Next i End Sub 

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail