Chart question using xl3DColumn constant.

Hello group,

In the following code; during runtime whenever I choose the third item from the
array (ar_ChartFormat(3) = xl3DColumn) and I look at the log file I can see "type : -4100" but the rest of the options are logged as normal values such as 51,53 and ... In fact, this causes mismatch type for the generated chart.

I'm using same constant value but on this specific item I'm having problem! What is the problem here?

Code:



    ar_ChartFormat(1) = xlColumnClustered
    ar_ChartFormat(2) = xl3DColumnClustered
    ar_ChartFormat(3) = xl3DColumn
    ar_ChartFormat(4) = xlColumnStacked
    ar_ChartFormat(5) = xl3DColumnStacked
    ar_ChartFormat(6) = xlColumnStacked100
    ar_ChartFormat(7) = xl3DColumnStacked100
   
    ar_ChartFormat(8) = xlLine
    ar_ChartFormat(9) = xlLineMarkers
    ar_ChartFormat(10) = xl3DLine
    ar_ChartFormat(11) = xlLineStacked
    ar_ChartFormat(12) = xlLineMarkersStacked
    ar_ChartFormat(13) = xlLineStacked100
    ar_ChartFormat(14) = xlLineMarkersStacked100
   
    ar_ChartFormat(15) = xlPie
    ar_ChartFormat(16) = xlPieExploded
    ar_ChartFormat(17) = xl3DPie
    ar_ChartFormat(18) = xl3DPieExploded
    ar_ChartFormat(19) = xlPieOfPie
    ar_ChartFormat(20) = xlBarOfPie
   
   
    With ActiveSheet.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
   
        .Chart.SetSourceData Source:=ActiveSheet.Range(strSelectedRange)
       
        LogInformation ("type: " & CStr(ar_ChartFormat(CInt(tvCtrlChartType.SelectedItem.Index - 3))))
       
        .Chart.ChartType = ar_ChartFormat(CInt(tvCtrlChartType.SelectedItem.Index - 3))

       
    End With

regards,
ak
akohanAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

akohanAuthor Commented:

Ok. I found the cause. After a chart is created on worksheet it is selected by default.  If I try to create a new one since the previous chart is still active or selected will cause "type mismatch" error!

So what I did was calling Deselect method. Now the new problem is that the compiler doesn't like this statement:

                   ActiveChart.Deselect

and causes another error message: "Object Varialbe or With block variable not set"

What should I do now?!

thanks,
ak
0
Rory ArchibaldCommented:
That would imply that you do not have a chart activated.
0
akohanAuthor Commented:

Would you please explain what you mean?

As far as I know DSELECT method belongs to Chart class. So it shouldn't cause a problem.

Also as soon as a chart is plotted or created, I can see that it is selected (at least by seeing the frame around it and small boxes on each side).

regards,
ak

0
Rory ArchibaldCommented:
Deselect does belong to the chart class, but if there is no chart active, then you will get that message if you use Activechart. Running your code does not, at least in Excel 2002, result in the new chart being active, so you will get that error.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Office

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.