Tenho uma macro que atualiza um relatório de hora em hora e envia um e-mail no fim do Script para alguns usuários com o status naquele momento.
Porém, toda vez que a macro está rodando, sempre quando chega no momento de criar uma imagem e colar, ele da um erro em tempo de execução 1004.
Mas, quando abre o depurador, se eu dou um play pra seguir a macro, ele segue normalmente até o fim.
E como roda de 1 em 1 hora, tenho que sempre estar olhando pra quando der o erro, clicar em depurar e dar play para seguir com a macro.
Deixei uma parte em negrito no Script, que foi uma tentativa de resolver o problema, aguardando 30 segundos para colar a imagem. Mas não adiantou, o erro sempre ocorre.
Segue abaixo o Script da macro e onde está sublinhado é quando ocorre o erro:
Private Sub createJpg(Namesheet As String, nameRange As String, nameFile As String)
ThisWorkbook.Activate
Worksheets(Namesheet).Activate
Set Plage = ThisWorkbook.Worksheets(Namesheet).Range(nameRange) ThisWorkbook.Worksheets(Namesheet).Range(nameRange).CopyPicture -----Nessa parte é aonde da o erro.
With ThisWorkbook.Worksheets(Namesheet).ChartObjects.Add(Plage.Left, Plage.Top, Plage.Width, Plage.Height)
.Activate
.Visible = True
.Chart.Paste
With .Chart.Shapes(1)
.Width = Plage.Width
.Height = Plage.Height
End With
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
.Visible = False
End With
ActiveSheet.Shapes(Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Name).Line.Visible = msoFalse
Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Delete
Set Plage = Nothing
End Sub
Caso precisem de mais alguma informação para poder me ajudar, estou à disposição.
Pergunta
diegoamaral91
Olá pessoal, boa tarde!
Tenho uma macro que atualiza um relatório de hora em hora e envia um e-mail no fim do Script para alguns usuários com o status naquele momento.
Porém, toda vez que a macro está rodando, sempre quando chega no momento de criar uma imagem e colar, ele da um erro em tempo de execução 1004.
Mas, quando abre o depurador, se eu dou um play pra seguir a macro, ele segue normalmente até o fim.
E como roda de 1 em 1 hora, tenho que sempre estar olhando pra quando der o erro, clicar em depurar e dar play para seguir com a macro.
Deixei uma parte em negrito no Script, que foi uma tentativa de resolver o problema, aguardando 30 segundos para colar a imagem. Mas não adiantou, o erro sempre ocorre.
Segue abaixo o Script da macro e onde está sublinhado é quando ocorre o erro:
Private Sub createJpg(Namesheet As String, nameRange As String, nameFile As String)
ThisWorkbook.Activate
Worksheets(Namesheet).Activate
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 30
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Set Plage = ThisWorkbook.Worksheets(Namesheet).Range(nameRange)
ThisWorkbook.Worksheets(Namesheet).Range(nameRange).CopyPicture ----- Nessa parte é aonde da o erro.
With ThisWorkbook.Worksheets(Namesheet).ChartObjects.Add(Plage.Left, Plage.Top, Plage.Width, Plage.Height)
.Activate
.Visible = True
.Chart.Paste
With .Chart.Shapes(1)
.Width = Plage.Width
.Height = Plage.Height
End With
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
.Visible = False
End With
ActiveSheet.Shapes(Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Name).Line.Visible = msoFalse
Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Delete
Set Plage = Nothing
End Sub
Caso precisem de mais alguma informação para poder me ajudar, estou à disposição.
Valeu!
Link para o comentário
Compartilhar em outros sites
4 respostass 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.