- 30 Dez 2020 às 02:36
#61261
Boa noite. Estou utilizando uma macro para classificar em ordem crescente as dezenas da Mega-Sena em uma planilha. As dezenas ficam no intervalo "L5:U84", sendo cada cartela da loteria em uma linha deste intervalo. O problema é que quando chamo a macro, ela vai ordenando corretamente linha a linha, mas ela não finaliza na última linha "L84:U84", ela continua na linha "L85:U85" e logo em seguida apresenta esta mensagem de erro (Erro em tempo de execução '1004': Para você fazer isto, todas as células mescladas precisam ser do mesmo tamanho.) já que as células "L85 e M85" estão mescladas. Gostaria de uma ajuda para que a macro ordenasse linha a linha do intervalo "L5:U84" e parasse quando chegar na última linha "L84:U84", retornando o cursor para a célula "L5". Agradeço se alguém puder me ajudar.
Sub Classificar_Dezenas_Ordem_Crescente()
'
' Ordenar_Dezenas_Ordem_Crescente Macro
'
'
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim W As Worksheet
Dim UltCel As Range
Dim Linha As Long
Set W = Sheets("Bolão")
W.Select
Set UltCel = W.Range("L84").Range("U5")
W.Range("L5").Select
Do While ActiveCell.Row <= UltCel.Row
Linha = ActiveCell.Row
W.Range("L" & Linha & ":U" & Linha).Select
W.Sort.SortFields.Clear
W.Sort.SortFields.Add Key:=W.Range("L" & Linha & ":U" & Linha), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With W.Sort
.SetRange W.Range("L" & Linha & ":U" & Linha)
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
ActiveCell.Offset(1, 0).Select
Loop
MsgBox "Operação Realizada com Sucesso!"
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Sub Classificar_Dezenas_Ordem_Crescente()
'
' Ordenar_Dezenas_Ordem_Crescente Macro
'
'
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim W As Worksheet
Dim UltCel As Range
Dim Linha As Long
Set W = Sheets("Bolão")
W.Select
Set UltCel = W.Range("L84").Range("U5")
W.Range("L5").Select
Do While ActiveCell.Row <= UltCel.Row
Linha = ActiveCell.Row
W.Range("L" & Linha & ":U" & Linha).Select
W.Sort.SortFields.Clear
W.Sort.SortFields.Add Key:=W.Range("L" & Linha & ":U" & Linha), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With W.Sort
.SetRange W.Range("L" & Linha & ":U" & Linha)
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
ActiveCell.Offset(1, 0).Select
Loop
MsgBox "Operação Realizada com Sucesso!"
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub