Jump to content
Fórum Script Brasil
  • 0

Erro em tempo de execução '1004'


buiao

Question

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.

Edited by kuroi
Adicionar tag CODE
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...