none
Importar gráficos para o userforme RRS feed

  • Pergunta

  • Boa noite.

    Tenho que importa 3 gráficos para um userform. Eu até tinha conseguido, mas do nada começou a dar erros, ai coloquei o código "On Error Resume Next" (mas isso não é solução, apenas não trava mais o meu formulário, porém não faz o que deveria fazer). No momento tenho o código abaixo:

    Sheets("Plan3").Select
    On Error Resume Next
    Set Grafico = Sheets("Plan3").ChartObjects("Graf").Chart
        nome = "C:\Windows\Temp" & Application.PathSeparator & "temp.gif"
        Grafico.Export Filename:=nome, Filtername:="GIF"
        Imagem1.Picture = LoadPicture(nome)
        
    Sheets("Historico").Select
    On Error Resume Next
    Set Grafico = Sheets("Historico").ChartObjects("Grafi").Chart
        nome = "C:\Windows\Temp" & Application.PathSeparator & "temp.gif"
        Grafico.Export Filename:=nome, Filtername:="GIF"
        Imagem2.Picture = LoadPicture(nome)
        
    Sheets("KalosG1").Select
    On Error Resume Next
    Set Grafico = Sheets("KalosG1").ChartObjects("Grafic").Chart
        nome = "C:\Windows\Temp" & Application.PathSeparator & "temp.gif"
        Grafico.Export Filename:=nome, Filtername:="GIF"
        Imagem3.Picture = LoadPicture(nome)

    Obs: Coloquei "Sheets("....").Select" antes de cada "On Error Resume Next" para tentar resolver, porém não deu certo. Ps: tem horas que funciona tem horas que não. As vezes apenas um dos gráficos falha etc... Não tenho ideia do que esta errado.

    domingo, 5 de março de 2017 04:16

Todas as Respostas

  • Tente:

    Sheets("Plan3").Select
    On Error Resume Next
    Set Grafico = Sheets("Plan3").ChartObjects("Graf").Chart
    nome = "C:\Windows\Temp" & Application.PathSeparator & "temp.gif"
    Grafico.Select
    Grafico.Export Filename:=nome, Filtername:="GIF"
    Imagem1.Picture = LoadPicture(nome)
    


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    domingo, 5 de março de 2017 13:53
    Moderador
  • Bom dia. Continua dando erro. Ps: removi o código on error para ver o que está ocorrendo, pois bem. Com o meu código dava o erro: "Erro em tempo de execução '481': Figura inválida" com a sua correção continua dando erro, porém o erro agora é: "Erro em tempo de execução '1004': O método select da classe chart falhou". Lembro que a coisa mais estranha (ao meu ver que não entendo muito de vba) é que tem vezes que o código funciona e tem vezes que não e são 3 gráficos e normalmente apenas um da erro.
    domingo, 5 de março de 2017 14:09
  • Existe um bug no Excel 2010 e superior que o método Chart.Export dá erro "às vezes".

    Para que esse método nunca dê erro, basta selecionar o objeto Chart antes, por isso fiz essa sugestão.

    Tente trocar minha sugestão por:

    Grafico.Parent.Select


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    domingo, 5 de março de 2017 14:23
    Moderador
  • Boa tarde... Olha, acho que isso resolveu o problema. Pelo menos não deu mais erro em 1h de uso. Muito obrigado... 
    domingo, 5 de março de 2017 15:46