Consulting

Results 1 to 3 of 3

Thread: Printing chart objects

  1. #1
    VBAX Expert
    Joined
    Jan 2005
    Posts
    574
    Location

    Printing chart objects

    I am using the code below to print a chart depending on the month, Works well but i was wondering if there is a shorter way of achieving the same result

    Any Ideas?

    Dim currentmonth As String
    currentmonth = Format(now(), "mm")
    Select Case currentmonth
    Case Is = "01"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.ChartArea.Select
    Case Is = "02"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 2").Activate
    ActiveChart.ChartArea.Select
    Case Is = "03"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 3").Activate
    ActiveChart.ChartArea.Select
    Case Is = "04"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 4").Activate
    ActiveChart.ChartArea.Select
    Case Is = "05"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 5").Activate
    ActiveChart.ChartArea.Select
    Case Is = "06"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveChart.ChartArea.Select
    Case Is = "07"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 7").Activate
    ActiveChart.ChartArea.Select
    Case Is = "08"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 8").Activate
    ActiveChart.ChartArea.Select
    Case Is = "09"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 9").Activate
    ActiveChart.ChartArea.Select
    Case Is = "10"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 10").Activate
    ActiveChart.ChartArea.Select
    Case Is = "11"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 11").Activate
    ActiveChart.ChartArea.Select
    Case Is = "12"
    Sheets("Charts").Select
    ActiveSheet.ChartObjects("Chart 12").Activate
    ActiveChart.ChartArea.Select
    End Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

  2. #2
    Knowledge Base Approver
    The King of Overkill!
    VBAX Master
    Joined
    Jul 2004
    Location
    Rochester, NY
    Posts
    1,727
    Location
    Hi gibbo,

    You should just be able to use:
    Sheets("Charts").Select
        ActiveSheet.ChartObjects("Chart " & Month(Date)).Activate
        ActiveChart.ChartArea.Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Matt

  3. #3
    VBAX Expert
    Joined
    Jan 2005
    Posts
    574
    Location
    many thanks, not tested it yet but i have no doubt it will work

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •