![]() |
Compile error in 2003
The following code fails to compile in Excel 2003 because it uses methods
that are new to Excel 2007. Is there any way around this problem or do I need to create a separate program for Excel 2003 and 2007? 'The code to add a tile for the chart and axes is different for Excel 2003 and 2007 If Application.Version = "11.0" Then With ActiveChart 'Excel 2003 code .HasTitle = True .ChartTitle.Characters.Text = strTitle + Chr(10) + strSubTitle .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = strXAxis .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = strYAxis End With ElseIf Application.Version = "12.0" Then With ActiveChart 'Excel 2007 code .SetElement (msoElementChartTitleAboveChart) .ChartTitle.Text = strTitle + Chr(10) + strSubTitle .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) .Axes(xlCategory, xlPrimary).AxisTitle.Text = strXAxis .SetElement (msoElementPrimaryValueAxisTitleRotated) .Axes(xlValue, xlPrimary).AxisTitle.Text = "y-axis stryaxis" End With End If |
Compile error in 2003
Lee,
I think you can use this for conditional compiling...the #s are required. Sub Test() 2007Ver = Val(Application.Version) = 11 #If 2007Ver Then '2007 code here #Else '2003 code here #End If End Sub HTH, Bernie MS Excel MVP "Lee" wrote in message ... The following code fails to compile in Excel 2003 because it uses methods that are new to Excel 2007. Is there any way around this problem or do I need to create a separate program for Excel 2003 and 2007? 'The code to add a tile for the chart and axes is different for Excel 2003 and 2007 If Application.Version = "11.0" Then With ActiveChart 'Excel 2003 code .HasTitle = True .ChartTitle.Characters.Text = strTitle + Chr(10) + strSubTitle .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = strXAxis .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = strYAxis End With ElseIf Application.Version = "12.0" Then With ActiveChart 'Excel 2007 code .SetElement (msoElementChartTitleAboveChart) .ChartTitle.Text = strTitle + Chr(10) + strSubTitle .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) .Axes(xlCategory, xlPrimary).AxisTitle.Text = strXAxis .SetElement (msoElementPrimaryValueAxisTitleRotated) .Axes(xlValue, xlPrimary).AxisTitle.Text = "y-axis stryaxis" End With End If |
Compile error in 2003
2007Ver = Val(Application.Version) = 11 #If 2007Ver Then That won't work for so many reasons..... Cordially, Chip Pearson Microsoft Most Valuable Professional Excel Product Group, 1998 - 2009 Pearson Software Consulting, LLC www.cpearson.com (email on web site) On Wed, 27 May 2009 14:42:56 -0400, "Bernie Deitrick" <deitbe @ consumer dot org wrote: Lee, I think you can use this for conditional compiling...the #s are required. Sub Test() 2007Ver = Val(Application.Version) = 11 #If 2007Ver Then '2007 code here #Else '2003 code here #End If End Sub HTH, Bernie MS Excel MVP "Lee" wrote in message ... The following code fails to compile in Excel 2003 because it uses methods that are new to Excel 2007. Is there any way around this problem or do I need to create a separate program for Excel 2003 and 2007? 'The code to add a tile for the chart and axes is different for Excel 2003 and 2007 If Application.Version = "11.0" Then With ActiveChart 'Excel 2003 code .HasTitle = True .ChartTitle.Characters.Text = strTitle + Chr(10) + strSubTitle .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = strXAxis .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = strYAxis End With ElseIf Application.Version = "12.0" Then With ActiveChart 'Excel 2007 code .SetElement (msoElementChartTitleAboveChart) .ChartTitle.Text = strTitle + Chr(10) + strSubTitle .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) .Axes(xlCategory, xlPrimary).AxisTitle.Text = strXAxis .SetElement (msoElementPrimaryValueAxisTitleRotated) .Axes(xlValue, xlPrimary).AxisTitle.Text = "y-axis stryaxis" End With End If |
Compile error in 2003
You can use conditional compilation. E.g., at the top of your module, #Const XL2007 = True ' Or False ' in the procedure code #If XL2007 Then ' your code for Excel 2007 #Else ' your code for Excel 2003 #End If You'll have to set the #Const value for XL2007 manually -- there is no way to automate it. As an alternative, you can use CallByName. E.g., If CInt(Application.Version) 11 Then ' Excel 2007 CallByName ActiveChart,"HasTitle",VbLet,True ' other calls to CallByName for other properties Else ' Excel 2003 CallByName ActiveChart,"ChartTitle",VbLet, "your title here" ' other calls to CallByName for other properties. End If Cordially, Chip Pearson Microsoft Most Valuable Professional Excel Product Group, 1998 - 2009 Pearson Software Consulting, LLC www.cpearson.com (email on web site) On Wed, 27 May 2009 10:31:01 -0700, Lee wrote: The following code fails to compile in Excel 2003 because it uses methods that are new to Excel 2007. Is there any way around this problem or do I need to create a separate program for Excel 2003 and 2007? 'The code to add a tile for the chart and axes is different for Excel 2003 and 2007 If Application.Version = "11.0" Then With ActiveChart 'Excel 2003 code .HasTitle = True .ChartTitle.Characters.Text = strTitle + Chr(10) + strSubTitle .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = strXAxis .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = strYAxis End With ElseIf Application.Version = "12.0" Then With ActiveChart 'Excel 2007 code .SetElement (msoElementChartTitleAboveChart) .ChartTitle.Text = strTitle + Chr(10) + strSubTitle .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) .Axes(xlCategory, xlPrimary).AxisTitle.Text = strXAxis .SetElement (msoElementPrimaryValueAxisTitleRotated) .Axes(xlValue, xlPrimary).AxisTitle.Text = "y-axis stryaxis" End With End If |
All times are GMT +1. The time now is 11:38 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com