VBA Access - Criando uma planilha (MS Excel com gráfico) a partir de uma aplicação MS Access.

Vez por outra recebo pedidos sobre como criar planilhas através do Access, ou seja, a partir de uma aplicação MS Access que alguém já tem desenvolvida. Na verdade isso é muito simples, por isso estou ampliando alguns passos nesta criação. Além de demonstrar como criar a planilha, estou populando-a com dados e inserindo um gráfico, tudo programaticamente (ou de modo automatizado, como preferem alguns). Espero que gostem, ampliem o exemplo e me retornem opiniões e acréscimos...Ahhh e o mais importante para toda a comunidade de desenvolvedores, compartilhe com o máximo de pessoas que conhecer! Boa diversão!
 
Private Sub cmdMakeChart_Click()     '  Author:                           Date:                     Contact:                           URL:     '  André Bernardes             23/11/2009 10:40    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/     '  Cria uma planilha, popula-a com uma periodicidade e dados, cria um gráfico.
 
    Dim AppMSExcel As Excel.Application     Dim the_date As Date     Dim stop_date As Date     Dim r As Integer     Dim new_chart As Chart     Dim new_book As Workbook     Dim active_sheet As Worksheet
 
    ' Abre a aplicação MS Excel.     Set AppMSExcel = CreateObject("Excel.Application")
 
    ' Mantém aplicação escondida.     Let AppMSExcel.Visible = True
 
    ' Cria uma nova planilha (spreadsheet).     Set new_book = AppMSExcel.Workbooks.Add()
 
    ' Gera valores randômicos dentro de um período.     Set active_sheet = new_book.Sheets(1)         Let the_date = CDate("01/11/09")     Let stop_date = CDate("23/11/09")     Let r = 1         Do While the_date < stop_date         Let active_sheet.Cells(r, 1) = the_date         Let active_sheet.Cells(r, 2) = Int(Rnd * 90) + 10         Let the_date = DateAdd("d", 1, the_date)         Let r = r + 1     Loop
 
    ' Cria um gráfico (chart) conectado a estes dados.     Set new_chart = Charts.Add()         With new_chart         Let .ChartType = xlLineMarkers                 .SetSourceData Source:=active_sheet.Range("A1:B" & Format$(r - 1)), PlotBy:=xlColumns         .Location Where:=xlLocationAsObject, Name:=active_sheet.Name     End With
 
    Let active_sheet.Shapes(active_sheet.Shapes.Count).Top = 10     Let active_sheet.Shapes(active_sheet.Shapes.Count).Left = 100     Let active_sheet.Shapes(active_sheet.Shapes.Count).Width = 600     Let active_sheet.Shapes(active_sheet.Shapes.Count).Height = 400
 
    ActiveChart.ChartArea.Select
 
    ' Acerta primeira fase de detalhes.     With ActiveChart         Let .HasTitle = True         Let .ChartTitle.Characters.Text = "Valores de Fevereiro"         Let .Axes(xlCategory, xlPrimary).HasTitle = True         Let .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Data"         Let .Axes(xlValue, xlPrimary).HasTitle = True         Let .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Valores"     End With
 
    ' Fecha a pasta (workbook) salvando.     AppMSExcel.ActiveWorkbook.Close True
 
    ' Fecha o MS Excel.     AppMSExcel.Quit
    Set AppMSExcel = Nothing
 
    MsgBox "Planilha Gerada!" End Sub
 
André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com
 
Twitter: @officespecialis                  @brzexceldevelop                  @brzaccessdevel   

Nenhum comentário:

Postar um comentário

diHITT - Notícias