none
mostrar intervalo de células do excel 2013 em um formulário RRS feed

  • Pergunta

  • Olá.

    Preciso mostrar um intervalo de células em um formulário, nas versões anteriores funciona o código abaixo, no excel 2013 da erro, a sub "TABLE_GOALS2" está em um módulo e cria uma imagem em um diretório especifico, a qual é carregada no formulário juntamente com o gráfico gerado na sub UpdateChart_GOALS2 que está em um form.

    Agradeço caso alguém souber a solução.

    Sub TABLE_GOALS2()
        Dim ws As Worksheet
        Dim cht As ChartObject
        Dim rng As Range
        Sheets("GOALS2").Select
        Set ws = ActiveSheet
        'COPIES THE RANGE AS AN IMAGE TO THE CLIPBIARD
        With ws
            'CHANGE THE INTERVAL BELOW AS DESIRED
            Set rng = .Range("A36:N39")
            rng.CopyPicture xlScreen, xlBitmap
            'CREATES GRAPHIC
            Set cht = .ChartObjects.Add(0, 0, rng.Width, rng.Height)
        End With
        With cht
          'PASTE FIGURE IN THE CHART
          .Chart.Paste
          'SAVE GRAPHIC AS A IMAGE
          .Chart.Export sCaminho
          'CLEARS THE GRAPHICS OBJECT. IT ONLY SERVED TO US TO SAVE THE IMAGE IN A FOLDER
          .Delete
        End With
    End Sub

    'CREATE AND SHOW THE CHART GOALS2 IN FORM
    Private Sub UpdateChart_GOALS2()
        Set CurrentChart = Sheets("GOALS2").ChartObjects(ChartNum).Chart
        CurrentChart.Parent.Width = 600
        CurrentChart.Parent.Height = 400
    'SAVE CHART AS JPEG
        Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.jpg"
        CurrentChart.Export Filename:=Fname, FilterName:="JPG"
    'SHOW THE CHART
        Image1.Picture = LoadPicture(Fname)
        Call TABLE_GOALS2
            With Image2
                .Picture = LoadPicture("c:\temp\imgtemp.jpg")
                .PictureSizeMode = fmPictureSizeModeStretch 'OR USE .AutoSize = True
            End With
    End Sub

    quinta-feira, 30 de outubro de 2014 18:54