Inquiridor
Erro : "O metodo PasteSpecial do objeto Shapes Falhou" -2147417851(80010105)

Pergunta
-
Olá,
Tenho um codigo que gera um arquivo powerpoint e o preenche com os dados do Excel.
O codigo roda normal algumas vezes e outras da o erro conforme imagem abaixo(mesmo não tendo alteração no codigo)
Segue trecho do codigo para verificar se posso melhorá-lo.
'Create an Instance of PowerPoint On Error Resume Next 'Is PowerPoint already opened? Set PowerPointApp = GetObject(class:="PowerPoint.Application") 'Clear the error between errors Err.Clear 'If PowerPoint is not already open then open PowerPoint If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application") 'Handle if the PowerPoint Application is not found If Err.Number = 429 Then MsgBox "PowerPoint could not be found, aborting." Exit Sub End If On Error GoTo 0 PowerPointApp.Presentations.Open ppt 'Tornar o Power Point visivel e ativo PowerPointApp.Visible = True PowerPointApp.Activate Set myPresentation = PowerPointApp.ActivePresentation ' Criar uma estrutura de repetição que percorre todos os slides Set Wbfocus = Workbooks.Open(focus) For i = 2 To 111 Step 1 Set mySlide = myPresentation.Slides(i) 'Determinar o que será copiado e colado em função do slide selecionado Select Case i Case Is = 2 Set rng = ThisWorkbook.Worksheets("Longos Brasil (s_bonus_inflact)").Range("h3:r13") rng.Copy mySlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile Set myShapeRange = mySlide.Shapes(mySlide.Shapes.Count) myShapeRange.Left = 15 myShapeRange.Top = 40 myShapeRange.Width = 675 Application.CutCopyMode = False Set rng = ThisWorkbook.Worksheets("Longos Brasil (s_bonus_inflact)").Range("h16:q26") rng.Copy mySlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile Set myShapeRange = mySlide.Shapes(mySlide.Shapes.Count) myShapeRange.Left = 15 myShapeRange.Top = 245 myShapeRange.Width = 525 Application.CutCopyMode = False Set rng = ThisWorkbook.Worksheets("Longos Brasil (s_bonus_inflact)").Range("i30:m31") rng.Copy mySlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile Set myShapeRange = mySlide.Shapes(mySlide.Shapes.Count) myShapeRange.Left = 40 myShapeRange.Top = 450 myShapeRange.Width = 350 Application.CutCopyMode = False Set rng = ThisWorkbook.Worksheets("Longos Brasil (s_bonus_inflact)").Range("h33:k39") rng.Copy mySlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile Set myShapeRange = mySlide.Shapes(mySlide.Shapes.Count) myShapeRange.Left = 540 myShapeRange.Top = 275 myShapeRange.Width = 170 Application.CutCopyMode = False
Todas as Respostas
-
-
-
-
O que fica difícil é trabalhar com VBA no Office assim.
Eu tenho o mesmo erro e ninguém sabe nem mesmo como contorná-lo.
Às vezes dá erro, às vezes funciona... não tem mais o que te informar a respeito da situação.
Tens ideia (ainda que remota) do que pode estar acontecendo?