Ir para conteúdo
Fórum Script Brasil
  • 0

Erro em tempo de execução '1004'


buiao

Pergunta

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:

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:

Erro em tempo de execução '1004'

O método 'range' do objeto '_global' falhou

Favor ajudar na solução desse problema.

Editado por kuroi
Adicionar 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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...