Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 47
Default Continuing Val(Application.Version) saga ?

Hi;

I wasn't sure which was more appropriate -- continue with the older thread
or start a new one? So, I am starting a new one. If this is contrary to
netequite et me know.

My friend has Excel version 9.0 . I
have version 10. The correct version numbers on both machines are being
returned. (In the VBE Immediate window and through MsgBox.). The only way
that I can test this problem is directly on his machine.
I have the following in my startup code:

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
End If

It works perfectly on my version 10 machine. If I use 11 as a test for
example the implementation jumps to the 'Else' condition as it should.

His keeps giving an error at compile time; the debugger shows that his
machine is not making the jump over the 'Then' statement to the 'Else' and
his error always comes about when his compiler tries to read the version 10
Protect block at the ' AllowFormattingCells:=True, _' line. I didn't
write down his exact error message but it was something like "argument not
found".

I have tried (in my amateur way) to use compiler directives and that hasn't
worked.
I have both programs working by taking the additional 'Protect' code out of
both versions, but other people I will be sharing with will have version 10
and the additional 'Protect' code is a nice feature for what I want to do.

Any and all suggestions gratefully received.

Regards Bill

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,290
Default Continuing Val(Application.Version) saga ?

Bill,
Put the protection code in separate Subs and put each Sub in a new module.
The new module(s) aren't compiled until their subs are called...

If Val(Application.Version) = 10 Then
Call OtherSubFor10_version
Else
Call OtherSubFor9_version
End if
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Bill Case"
wrote in message
Hi;
I wasn't sure which was more appropriate -- continue with the older thread
or start a new one? So, I am starting a new one. If this is contrary to
netequite et me know.

My friend has Excel version 9.0 . I
have version 10. The correct version numbers on both machines are being
returned. (In the VBE Immediate window and through MsgBox.). The only way
that I can test this problem is directly on his machine.
I have the following in my startup code:

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
End If

It works perfectly on my version 10 machine. If I use 11 as a test for
example the implementation jumps to the 'Else' condition as it should.

His keeps giving an error at compile time; the debugger shows that his
machine is not making the jump over the 'Then' statement to the 'Else' and
his error always comes about when his compiler tries to read the version 10
Protect block at the ' AllowFormattingCells:=True, _' line. I didn't
write down his exact error message but it was something like "argument not
found".

I have tried (in my amateur way) to use compiler directives and that hasn't
worked.
I have both programs working by taking the additional 'Protect' code out of
both versions, but other people I will be sharing with will have version 10
and the additional 'Protect' code is a nice feature for what I want to do.
Any and all suggestions gratefully received.
Regards Bill

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Continuing Val(Application.Version) saga ?

Also, don't Compile the project manually.

--
Regards,
Tom Ogilvy

"Jim Cone" wrote in message
...
Bill,
Put the protection code in separate Subs and put each Sub in a new module.
The new module(s) aren't compiled until their subs are called...

If Val(Application.Version) = 10 Then
Call OtherSubFor10_version
Else
Call OtherSubFor9_version
End if
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Bill Case"
wrote in message
Hi;
I wasn't sure which was more appropriate -- continue with the older thread
or start a new one? So, I am starting a new one. If this is contrary to
netequite et me know.

My friend has Excel version 9.0 . I
have version 10. The correct version numbers on both machines are being
returned. (In the VBE Immediate window and through MsgBox.). The only
way
that I can test this problem is directly on his machine.
I have the following in my startup code:

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
End If

It works perfectly on my version 10 machine. If I use 11 as a test for
example the implementation jumps to the 'Else' condition as it should.

His keeps giving an error at compile time; the debugger shows that his
machine is not making the jump over the 'Then' statement to the 'Else' and
his error always comes about when his compiler tries to read the version
10
Protect block at the ' AllowFormattingCells:=True, _' line. I
didn't
write down his exact error message but it was something like "argument not
found".

I have tried (in my amateur way) to use compiler directives and that
hasn't
worked.
I have both programs working by taking the additional 'Protect' code out
of
both versions, but other people I will be sharing with will have version
10
and the additional 'Protect' code is a nice feature for what I want to do.
Any and all suggestions gratefully received.
Regards Bill



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Continuing Val(Application.Version) saga ?

I think as well as not compiling, if 'MembSheet' is declared as Worksheet
would need to split that sheet protection code into two separate functions
and call the appropriate one depending on the version. Though no problem if
'MembSheet' is passed as Object. Also sometimes worth putting code designed
exclusively for later versions in the last inserted module.

Regards,
Peter T

"Tom Ogilvy" wrote in message
...
Also, don't Compile the project manually.

--
Regards,
Tom Ogilvy

"Jim Cone" wrote in message
...
Bill,
Put the protection code in separate Subs and put each Sub in a new

module.
The new module(s) aren't compiled until their subs are called...

If Val(Application.Version) = 10 Then
Call OtherSubFor10_version
Else
Call OtherSubFor9_version
End if
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Bill Case"
wrote in message
Hi;
I wasn't sure which was more appropriate -- continue with the older

thread
or start a new one? So, I am starting a new one. If this is contrary

to
netequite et me know.

My friend has Excel version 9.0 . I
have version 10. The correct version numbers on both machines are being
returned. (In the VBE Immediate window and through MsgBox.). The only
way
that I can test this problem is directly on his machine.
I have the following in my startup code:

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
End If

It works perfectly on my version 10 machine. If I use 11 as a test for
example the implementation jumps to the 'Else' condition as it should.

His keeps giving an error at compile time; the debugger shows that his
machine is not making the jump over the 'Then' statement to the 'Else'

and
his error always comes about when his compiler tries to read the version
10
Protect block at the ' AllowFormattingCells:=True, _' line. I
didn't
write down his exact error message but it was something like "argument

not
found".

I have tried (in my amateur way) to use compiler directives and that
hasn't
worked.
I have both programs working by taking the additional 'Protect' code out
of
both versions, but other people I will be sharing with will have version
10
and the additional 'Protect' code is a nice feature for what I want to

do.
Any and all suggestions gratefully received.
Regards Bill





  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Continuing Val(Application.Version) saga ?

Now why on earth didn't I read Jim's post properly!
Sorry for the duplication !!

Peter T

"Peter T" <peter_t@discussions wrote in message
...
I think as well as not compiling, if 'MembSheet' is declared as Worksheet
would need to split that sheet protection code into two separate functions
and call the appropriate one depending on the version. Though no problem

if
'MembSheet' is passed as Object. Also sometimes worth putting code

designed
exclusively for later versions in the last inserted module.

Regards,
Peter T

"Tom Ogilvy" wrote in message
...
Also, don't Compile the project manually.

--
Regards,
Tom Ogilvy

"Jim Cone" wrote in message
...
Bill,
Put the protection code in separate Subs and put each Sub in a new

module.
The new module(s) aren't compiled until their subs are called...

If Val(Application.Version) = 10 Then
Call OtherSubFor10_version
Else
Call OtherSubFor9_version
End if
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Bill Case"
wrote in message
Hi;
I wasn't sure which was more appropriate -- continue with the older

thread
or start a new one? So, I am starting a new one. If this is contrary

to
netequite et me know.

My friend has Excel version 9.0 . I
have version 10. The correct version numbers on both machines are

being
returned. (In the VBE Immediate window and through MsgBox.). The

only
way
that I can test this problem is directly on his machine.
I have the following in my startup code:

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
End If

It works perfectly on my version 10 machine. If I use 11 as a test

for
example the implementation jumps to the 'Else' condition as it should.

His keeps giving an error at compile time; the debugger shows that his
machine is not making the jump over the 'Then' statement to the 'Else'

and
his error always comes about when his compiler tries to read the

version
10
Protect block at the ' AllowFormattingCells:=True, _' line. I
didn't
write down his exact error message but it was something like "argument

not
found".

I have tried (in my amateur way) to use compiler directives and that
hasn't
worked.
I have both programs working by taking the additional 'Protect' code

out
of
both versions, but other people I will be sharing with will have

version
10
and the additional 'Protect' code is a nice feature for what I want to

do.
Any and all suggestions gratefully received.
Regards Bill









  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 300
Default Continuing Val(Application.Version) saga ?

On Sun, 8 Oct 2006 11:23:46 -0700, Jim Cone wrote:

First I would simplify it to (which seem to be the only ones that are not
the default):

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
UserInterfaceOnly:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
UserInterfaceOnly:=True
End If

Then what will work is using this construct:

If Val(Application.Version) = 10 Then
Sheets("sheetname").Protect _
Password:="bill", _
UserInterfaceOnly:=True, _
AllowUsingPivotTables:=True
Else
Sheets("sheetname").Protect _
Password:="bill", _
UserInterfaceOnly:=True
End If

Don <www.donwiss.com (e-mail link at home page bottom).
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 47
Default Continuing Val(Application.Version) saga ?

Thanks Jim et al;

Worked like a charm -- on the first go.

I would consider it an important lesson learned about how VBA compiles.

For Don Wiss; I realize I can take all the agruments out. I left them in
for the time being while I experimented with the best possible configuration.

Regards Bill

"Jim Cone" wrote:

Bill,
Put the protection code in separate Subs and put each Sub in a new module.
The new module(s) aren't compiled until their subs are called...

If Val(Application.Version) = 10 Then
Call OtherSubFor10_version
Else
Call OtherSubFor9_version
End if
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Bill Case"
wrote in message
Hi;
I wasn't sure which was more appropriate -- continue with the older thread
or start a new one? So, I am starting a new one. If this is contrary to
netequite et me know.

My friend has Excel version 9.0 . I
have version 10. The correct version numbers on both machines are being
returned. (In the VBE Immediate window and through MsgBox.). The only way
that I can test this problem is directly on his machine.
I have the following in my startup code:

If Val(Application.Version) = 10 Then
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
Else
MembSheet.Protect _
Password:="bill", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
End If

It works perfectly on my version 10 machine. If I use 11 as a test for
example the implementation jumps to the 'Else' condition as it should.

His keeps giving an error at compile time; the debugger shows that his
machine is not making the jump over the 'Then' statement to the 'Else' and
his error always comes about when his compiler tries to read the version 10
Protect block at the ' AllowFormattingCells:=True, _' line. I didn't
write down his exact error message but it was something like "argument not
found".

I have tried (in my amateur way) to use compiler directives and that hasn't
worked.
I have both programs working by taking the additional 'Protect' code out of
both versions, but other people I will be sharing with will have version 10
and the additional 'Protect' code is a nice feature for what I want to do.
Any and all suggestions gratefully received.
Regards Bill


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Office application version does not match. Joy Excel Discussion (Misc queries) 0 February 16th 09 01:22 PM
Application.VBE.Version on Excel XP Jeremy Excel Programming 5 May 30th 05 11:03 AM
Conditional Compilation using Application.Version Stephen Bullen[_4_] Excel Programming 0 November 9th 04 08:48 AM
Conditional Compilation using Application.Version Dave Peterson[_4_] Excel Programming 0 November 9th 04 01:13 AM
Help in using Application.Version Tom Ogilvy Excel Programming 0 April 1st 04 04:21 AM


All times are GMT +1. The time now is 03:00 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"