Este código me foi enviado num dos grupos há algum tempo.
Penso eu que já deveria fazer parte dos comandos do Excel, haja vista a quantidade imensa de planilhas que é possível colocar dentro de uma única pasta.
Créditos: fabiomaurisantos@bol.com.br
Sub ClassificarPlanilhas()
' Rotina para classificar planilhas em ordem crescente
Dim SheetNames() As String
Dim i As Integer
Dim SheetCount As Integer
Dim VisibleWins As Integer
Dim Item As Object
Dim OldActive As Object ' Checa se as estruturas das planilhas estão protegidas
If ActiveWorkbook.ProtectStructure Then
MsgBox ActiveWorkbook.Name & " is protected.", vbCritical, "Cannot Sort Sheets"
Exit Sub
End If
' Disativa Ctrl+Break
Application.EnableCancelKey = xlDisabled
' Sai se a janela não estiver visivel
VisibleWins = 0
For Each Item In Windows
If Item.Visible Then VisibleWins = VisibleWins + 1
Next Item
If VisibleWins = 0 Then Exit Sub ' conta nº de planilhas
SheetCount = ActiveWorkbook.Sheets.Count
' Redimensiona o array
ReDim SheetNames(1 To SheetCount)
' grava o nome da planilha ativa
Set OldActive = ActiveSheet
' prepara um array com os nomes das planilhas
For i = 1 To SheetCount
SheetNames(i) = ActiveWorkbook.Sheets(i).Name
Next i
' calssifica este array
Call Classificar(SheetNames)
' desativa atualização de tela
Application.ScreenUpdating = False
' move as planilhas
For i = 1 To SheetCount
ActiveWorkbook.Sheets(SheetNames(i)).Move ActiveWorkbook.Sheets(i)
Next i
' seleciona a planilha que havia gravado
OldActive.ActivateEnd Sub
Sub Classificar(List() As String)'Classifica as planilhas em ordem crescente
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If UCase(List(i)) > UCase(List(j)) Then
Temp = List(j)
List(j) = List(i)
List(i) = Temp
End If
Next j
Next i
End Sub
Eventualmente dicas sobre outros programas, Windows e hardware.
Assinar:
Postar comentários (Atom)
Pesquisar este blog
Arquivo do blog
-
▼
2007
(129)
-
▼
abril
(33)
- Limites do MS Word
- Cuidado com referências em macros
- Algumas alternativas ao Microsoft Office
- Código para classificar planilhas
- Alguns termos técnicos
- Centésimo post!
- Descobrindo senhas com programas gratuitos
- Procurando em várias planilhas da pasta
- Gravador de macro do Excel
- Limpando a célula
- Backup no Outlook Express e MS Outlook
- Cálculo do dígito verificador - módulo 11
- Limitar a área de utilização da planilha
- Cálculo do dígito verificador do CPF
- Calculando o dígito verificador do CNPJ
- Ocultando seu trabalho - Excel
- A vida mais fácil “mandando” o Windows executar
- Salvando macros no Excel 2007
- Para inicializar o Adobe Reader mais rapidamente
- Otimizando a área de trabalho do Excel
- Excel MMVII
- Laptop ou Notebook
- E-mail's falsos
- Tradução das funções de MATEMÁTICA E TRIGONOMETRIA...
- Vídeo aulas
- Texto com data na mesma célula
- Alinhando números no Word
- Tradução das funções FINANCEIRAS em inglês
- Tradução das funções de INFORMAÇÕES em inglês
- Tradução das funções de LÓGICA em inglês
- Tradução das funções de PROCURA E REFERÊNCIA em in...
- Tradução das funções de TEXTO em inglês
- Tradução das funções de DATA em inglês
-
▼
abril
(33)
Quem sou eu
- Kazu
- Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.
Nenhum comentário:
Postar um comentário