ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Compile error in 2003 (https://www.excelbanter.com/excel-programming/429019-compile-error-2003-a.html)

lee

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

Bernie Deitrick

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




Chip Pearson

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



Chip Pearson

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