Página 1 de 1

Macro que ordena por Mês

Enviado: 05 Jan 2021 às 23:42
por SandroLima
Boa noite, pessoal.

Como faço para ajustar a macro da planilha para que ordene a Coluna Mês da Tabela em Ordem Crescente? Ela atualmente coloca em ordem alfabética mas queria ordenar na sequencia de meses.

Janeiro - Fevereiro - Março ...

Segue planilha anexa.

Obrigado a quem puder ajudar.

Re: Macro que ordena por Mês

Enviado: 07 Jan 2021 às 14:37
por Foxtri
Olá
Veja se esta macro, faz o que vc quer .

Sub Ordena_Mensal()
Range("A8").Select
Range("A8:A19").Formula = "=match(B8,{""janeiro"";""Fevereiro"";""Março"";""Abril"";""Maio"";""Junho"";""Julho"";""Agosto"";""Setembro"";""Outubro"";""Novembro"";""Dezembro""},0)"
Range("A8:A19").Value = Range("A8:A19").Value
ActiveWorkbook.Worksheets("2020").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("2020").Sort.SortFields.Add Key:=Range("a8"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("2020").Sort
.SetRange Range("a8:I19")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A8:A19").Value = ""
End Sub

Até
Foxtri

Re: Macro que ordena por Mês

Enviado: 11 Jan 2021 às 14:55
por SandroLima
Boa tarde, Foxtri.

É uma boa alternativa.. mas atendeu em parte.

A tabela vai aumentando com o tempo e os meses podem ser repetidos na coluna.

A macro funcionou somente no caso de novas linhas não serem acrescentadas.

Inseri mais uma linha referente ao Mês de Abril para verificação.

Re: Macro que ordena por Mês

Enviado: 12 Jan 2021 às 07:44
por Foxtri
Bom dia.
Qual o resultado esperado;
Colocando mais uma linha com o mês de abril, como deve ficar ?
Aparecer duas vezes o mês repetido, ou não ??
Até
Foxtri

Re: Macro que ordena por Mês

Enviado: 12 Jan 2021 às 11:15
por SandroLima
Isso mesmo... Pode (aliás, deve) repetir.
Apenas ordenar por meses mesmo.

Re: Macro que ordena por Mês

Enviado: 12 Jan 2021 às 12:18
por Foxtri
Olá
Segue uma opção.
Sub Ordena_Mensal2()
Dim Ulin As Integer
Ulin = Cells(Rows.Count, "B").End(xlUp).Row - 1
Range("A8:A" & Ulin).Formula = "=match(B8,{""janeiro"";""Fevereiro"";""Março"";""Abril"";""Maio"";""Junho"";""Julho"";""Agosto"";""Setembro"";""Outubro"";""Novembro"";""Dezembro""},0)"
Range("A8:A" & Ulin).Value = Range("A8:A" & Ulin).Value
ActiveWorkbook.Worksheets("2020").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("2020").Sort.SortFields.Add Key:=Range("a8"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("2020").Sort
.SetRange Range("a8:I" & Ulin)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A8:A" & Ulin).Value = ""
End Sub

Até

Foxtri