none
Erro em tempo de execução '1004' - RANGE RRS feed

  • Pergunta

  • Bom dia,

    Já li todos (eu acho) perguntas sobre o tema, mas não consegui adaptar ao meu código.

    Eu tenho uma planilha com a aba "CARTÃO", e gostaria de fazer um relatório no final.

    Acontece que quando vou "formatar o relatório", preciso mesclar, adicionar grades, mudar fontes, etc. Para isso, estou pretendendo usar a função RANGE das células em questão.

    Ocorre que quando eu chama a função RANGE das Células da Planilha que tenho interesse, aparece: 

    "Erro em tempo de execução '1004'. A método Select da Função Range falhou."

    Estou colando uma parte do código para análise

    Private Sub CommandButton1_Click()
    
        Dim OperadorCart(1 To 1000) As String
        Dim DataCart(1 To 1000) As Date
        Dim ValorCart(1 To 1000) As Double
        Dim TipoCart(1 To 1000) As String
        Dim NParcCart(1 To 1000) As Integer
        Dim RefCart(1 To 1000) As String
        
    'Leitura de todos os dados
    ' CARTÃO
    cont_cart = 0
    For i = 1 To 1000
    
    If Sheets("CARTÃO").Cells(i + 1, 3) = "" Then
        i = 10000
    Else
        OperadorCart(i) = Sheets("CARTÃO").Cells(i + 1, 1)
        DataCart(i) = Sheets("CARTÃO").Cells(i + 1, 2)
        ValorCart(i) = Sheets("CARTÃO").Cells(i + 1, 3)
        TipoCart(i) = Sheets("CARTÃO").Cells(i + 1, 4)
        NParcCart(i) = Sheets("CARTÃO").Cells(i + 1, 5)
        RefCart(i) = Sheets("CARTÃO").Cells(i + 1, 6)
        cont_cart = cont_cart + 1
    End If
    
    Next i
    
    'Escrever Relatório
    
    
    'Cabeçalho Dinheiro
    Sheets("RELATÓRIO DIÁRIO").Select
    
    Range(Cells(3, 1), Cells(3, 10)).Select
    
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
    

    O erro aparece nesta parte final, quando eu chamo: 

    Range(Cells(3, 1), Cells(3, 10)).Select
    

    Alguém pode me ajudar por favor?

    Obrigado!

    quarta-feira, 24 de setembro de 2014 14:33

Respostas

  • Prezado Anderson,

    Fiz um teste aqui e parece que consegui resolver. Este erro é provocado quando o código está escrito dentro da própria planilha. Por algum motivo você só consegue setar as posições do Range dentro da própria planilha que está o código.

    Solução:

    Copie o seu código para um módulo e depois atribua a macro do módulo ao botão. Fiz aqui e deu certo (só não rodou a macro porque ela faz referência a um outro arquivo que eu não tenho).

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br

    quarta-feira, 24 de setembro de 2014 19:05

Todas as Respostas

  • Prezado Anderson,

    Pelo que eu entendi o método "Cells" da sua função está ainda fazendo referência a sua planilha antiga. Sua macro está tentando selecionar uma faixa de células que não está ativa. Tente o seguinte:

    Range(ActiveSheet.Cells(3, 1), ActiveSheet.Cells(3, 10)).Select

    Caso não funcione pode tentar também

    Range(Sheets("RELATÓRIO DIÁRIO").Cells(3, 1), Sheets("RELATÓRIO DIÁRIO").Cells(3, 10)).Select


    Boa sorte aí

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br

    quarta-feira, 24 de setembro de 2014 16:32
  • Olá Bráulio,

    Obrigado pela atenção.

    Tentei substituir os códigos referidos, mas não surgiram efeito. A mesnsagem de erro que apareceu foi:

    "Erro em tempo de execução '1004'. A método Range da Função '_Worksheet' falhou"

    Eu pensei que o erro era por nao estar selecionado, por isso fiz a linha de comando: 

    Sheets("RELATÓRIO DIÁRIO").Select

    Alguma sugetão?


    quarta-feira, 24 de setembro de 2014 16:40
  • Realmente só esbarrei com este erro nesta situação. Pode me passar por e-mail a planilha para que eu possa dar uma olhada? Se for o caso pode zerar os valores e substituir o nome dos fornecedores. Só para eu poder trabalhar com um exemplo real

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br

    quarta-feira, 24 de setembro de 2014 16:45
  • Prezado Anderson,

    Fiz um teste aqui e parece que consegui resolver. Este erro é provocado quando o código está escrito dentro da própria planilha. Por algum motivo você só consegue setar as posições do Range dentro da própria planilha que está o código.

    Solução:

    Copie o seu código para um módulo e depois atribua a macro do módulo ao botão. Fiz aqui e deu certo (só não rodou a macro porque ela faz referência a um outro arquivo que eu não tenho).

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br

    quarta-feira, 24 de setembro de 2014 19:05
  • Bráulio,

    MUITO OBRIGADO!!!!!! Resolveu! Parabéns!

    Fiquei curioso porque isto ocorre. 

    Mais uma vez, Obrigado!

    quarta-feira, 24 de setembro de 2014 20:10