+ Reply to Thread
Results 1 to 2 of 2

Issue with Union

Hybrid View

  1. #1
    Registered User
    Join Date
    06-08-2008
    Posts
    36

    Issue with Union

    This is a working code. The graph can be updated based on this

    With ActiveChart
        .SetSourceData Source:=CurrentSheet.Range("B5:B7,F5:F7,B16,F16") 'this works!!
    End With
    However, my the final cell might change.Hence I use 'Projects' to determine the last filled Cell. To create a range, I use the Union commmand.

    Projects = CurrentSheet.Range("B16").End(xlUp).Row
    Set myrange = Union(CurrentSheet.Range(Cells(5, 2), Cells(Projects, 2)), CurrentSheet.Range(Cells(5, 4), Cells(Projects, 4)), CurrentSheet.Range("B16"), CurrentSheet.Range("D16"))
    With ActiveChart
        .SetSourceData Source:=Range("myrange")
    End With
    But when i run this routine, it shows
    Error message
    Run-time error '1004':
    Method 'Range' of object'_Worksheet' failed.

    This points to this sentence of my quote
       .SetSourceData Source:=Range("myrange")
    anyone have any idea what went wrong????
    Last edited by jieyi; 03-17-2009 at 12:24 PM.

  2. #2
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & 2010
    Posts
    23,258

    Re: Issue with Union

    Hello jieyi,

    You have set the object variable "myrange" to the ranges in the Union and that's correct. The problem lies in how you are assigning the range to the chart. You are trying to reference your new range as a named ranged, which it isn't. See below in red...
    Projects = CurrentSheet.Range("B16").End(xlUp).Row
    Set myrange = Union(CurrentSheet.Range(Cells(5, 2), Cells(Projects, 2)), CurrentSheet.Range(Cells(5, 4), Cells(Projects, 4)), CurrentSheet.Range("B16"), CurrentSheet.Range("D16"))
    With ActiveChart
        .SetSourceData Source:=Range("myrange")
    End With
    The code should be as below...
    Projects = CurrentSheet.Range("B16").End(xlUp).Row
    Set myrange = Union(CurrentSheet.Range(Cells(5, 2), Cells(Projects, 2)), CurrentSheet.Range(Cells(5, 4), Cells(Projects, 4)), CurrentSheet.Range("B16"), CurrentSheet.Range("D16"))
    With ActiveChart
        .SetSourceData Source:=myrange
    End With
    Sincerely,
    Leith Ross

    Remember To Do the Following....

    1. Use code tags. Place [CODE] before the first line of code and [/CODE] after the last line of code.
    2. Thank those who have helped you by clicking the Star below the post.
    3. Please mark your post [SOLVED] if it has been answered satisfactorily.


    Old Scottish Proverb...
    Luathaid gu deanamh maille! (Rushing causes delays!)

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

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

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1