Compartilhar via

Erro ao copiar de uma planilha e colar na outra planilha - O método PasteSpecial da classe Range falhou

Anônima
2016-03-18T19:39:19+00:00

O método PasteSpecial da classe Range falhou

Alguem ai pode ajudar???

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

  1. Anônima
    2016-03-21T19:02:08+00:00

    Que bom que atendeu.

    Quando é necessário transferir apenas valores, utilizar uma matriz acelera bastante o código.

    Não esqueça de marcar a pergunta como respondida.

    [ ]s

    Esta resposta foi útil?

    0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

  1. Anônima
    2016-03-21T13:22:42+00:00

    Bom dia.

    Experimente esta versão do código:

    Sub at_claro()

        Dim linha As Long

        Dim Transf

        plan = ActiveWorkbook.Name

        With Application

            .DisplayAlerts = False

            .ScreenUpdating = False

            .EnableEvents = False

            .Calculation = xlCalculationManual

        End With

        Workbooks(plan).Sheets("plan1").Range("A2:F1048576").ClearContents

        Workbooks.Open ("c:\base.xlsb")

        ActiveWorkbook.Sheets("base").Select

        linha = ActiveWorkbook.Sheets("base").Range("B1048567").End(xlUp).Row

        If linha > 1 Then

            Transf = ActiveWorkbook.Sheets("base").Range("B2:G" & linha)

            Workbooks(plan).Sheets("plan1").Range("A2:F" & linha) = Transf

        End If

        ActiveWorkbook.Close

        Workbooks(plan).Activate

        Sheets("config").Select

        With Application

            .DisplayAlerts = True

            .EnableEvents = True

            .Calculation = xlCalculationAutomatic

            .ScreenUpdating = True

        End With

        MsgBox ("Atualizado com Sucesso!"), vbInformation, "Painel"

    End Sub

    [ ]s

    Esta resposta foi útil?

    0 comentários Sem comentários

3 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2016-03-21T18:37:52+00:00

    Funcionou!!!!!

    Eu percebi q quando tentava copiar perdia os valores e por isso causava a falha ao colar mas, nem sempre ocorria esse erro.

    Muito boa a sacada de armazenar os valores em uma matriz.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2016-03-21T12:34:03+00:00

    Option Explicit

    Public plan As String

    Sub at_claro()

        Dim linha As Long

        Dim Excel2 As Object

        plan = ActiveWorkbook.Name

        With Application

            .DisplayAlerts = False

            .ScreenUpdating = False

            .EnableEvents = False

            .Calculation = xlCalculationManual

        End With

        Sheets("plan1").Range("A2:F1048576").ClearContents

        Set Excel2 = CreateObject("Excel.Application")

        With Excel2

            .Visible = False

            .ScreenUpdating = False

            .DisplayAlerts = False

            .EnableEvents = False

            .Workbooks.Open ("c:\base.xlsb")

            .Calculation = xlCalculationManual

            .ActiveWorkbook.Sheets("base").Select

            linha = .ActiveWorkbook.Sheets("base").Range("B1048567").End(xlUp).Row

            If linha > 1 Then

                .ActiveWorkbook.Sheets("base").Range("B2:G" & linha).Copy

       ele para nesta linha (em negrito) >>> Workbooks(plan).Sheets("plan1").Range("A2").PasteSpecial Paste:=xlPasteValues: .Application.CutCopyMode = False

            End If

            .ActiveWorkbook.Close    

            .Quit

        End With

        Set Excel2 = Nothing

         Workbooks(plan).Activate

        Sheets("config").Select

        With Application

            .DisplayAlerts = True

            .EnableEvents = True

            .Calculation = xlCalculationAutomatic

            .ScreenUpdating = True

        End With

        MsgBox ("Atualizado com Sucesso!"), vbInformation, "Painel"

    End Sub

    Ele para onde esta em negrito, ae se clicar em "depurar" e apertar "F5" ele continua e nao da erro. Porem as vezes da erro e as vezes nao.

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2016-03-19T02:39:47+00:00

    Boa noite,

    Poderia colocar o código que está utilizando, principalmente o ponto em que ocorre o erro?

    [ ]s

    Esta resposta foi útil?

    0 comentários Sem comentários