Quero criar uma macro no excel para fazer as seguintes rotinas:
1- Ativar/Selecionar a ultima célula de uma tabela e defini-la como range Final;
2- Definir o intervalo da celula a7 até a célula acima da Final e definir este intervalo com Fluxo;
3- Classificar o intervalo Fluxo pelas colunas DataCompensada, Credito, Debito, DataProgramada;
4- Selecionar a celula a8.
O objetivo desta rotina é identificar a área total do intervalo e classificar pelas colunas mencionadas. Para isso criei o código abaixo:
Sub klassificar()
'
' klassificar Macro
'
Dim Fluxo As Range
Dim Final As Range
Dim DataCompensada As Range
Dim DataProgramada As Range
Dim Credito As Range
Dim Debito As Range
ActiveWorkbook.Worksheets("Fluxo de Caixa").Activate
ActiveCell.SpecialCells(xlLastCell).Activate
Set Final = ActiveCell.SpecialCells(xlLastCell).Offset(-1, 0).Range("A1")
Set Fluxo = Range("a7", Final)
Set Debito = Range("k8", Final.Offset(rowOffset:=0, columnOffset:=-24))
Set Credito = Range("j8", Final.Offset(rowOffset:=0, columnOffset:=-25))
Set Data_Programada = Range("b8", Final.Offset(rowOffset:=0, columnOffset:=-33))
Set Data_Compensada = Range("a8", Final.Offset(rowOffset:=0, columnOffset:=-34))
ActiveWorkbook.Worksheets("Fluxo de Caixa").Sort.SortFields.Clear
Fluxo.Select
O erro que descrevo abaixo acontece nos proximos comandos:
Fluxo.Sort.SortFields.Add Key:=Range(Data_Compensada), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Fluxo.Sort.SortFields.Add Key:=Range(Credito), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
Fluxo.Sort.SortFields.Add Key:=Range(Debito), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Fluxo.Sort.SortFields.Add Key:=Range(Data_Programada), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Fluxo.Sort
.SetRange Range(Fluxo)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B8").Select
End Sub
No entanto ao depurar encontro o seguinte erro que não estou conseguindo resolver:
Pergunta
buiao
Sou iniciante na programação e preciso de ajuda.
Quero criar uma macro no excel para fazer as seguintes rotinas:
1- Ativar/Selecionar a ultima célula de uma tabela e defini-la como range Final;
2- Definir o intervalo da celula a7 até a célula acima da Final e definir este intervalo com Fluxo;
3- Classificar o intervalo Fluxo pelas colunas DataCompensada, Credito, Debito, DataProgramada;
4- Selecionar a celula a8.
O objetivo desta rotina é identificar a área total do intervalo e classificar pelas colunas mencionadas. Para isso criei o código abaixo:
No entanto ao depurar encontro o seguinte erro que não estou conseguindo resolver:
Erro em tempo de execução '1004'
O método 'range' do objeto '_global' falhou
Favor ajudar na solução desse problema.
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.