Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 40
Default Help with Workbook_Open macro please

The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

....up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() * 10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Help with Workbook_Open macro please

Geoff,

You need to coerce the random numbe to be a string:

Worksheets("Audit").Protect Password:="A" & CStr(Int(Rnd() * 10000000000#))

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message
...
The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

...up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() *

10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 40
Default Help with Workbook_Open macro please

Bernie, thank for this, but having tried it, it made no difference. Is there
anything else that might help? I've succesfully used the random
string-protect technique many times before, but not in a Workbook_Open macro
before. I don't really understand why it seems to be failing on these two
lines.

Thanks, Geoff.

"Bernie Deitrick" wrote:

Geoff,

You need to coerce the random numbe to be a string:

Worksheets("Audit").Protect Password:="A" & CStr(Int(Rnd() * 10000000000#))

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message
...
The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

...up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() *

10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 252
Default Help with Workbook_Open macro please

I used the following successfully on the FIRST run of the macro.


Private Sub Workbook_Open()

Dim x As String
On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

'...up to here, but the next two lines don't do anything. They are supposed
'to protect with a random password, and then hide the sheet....
x = "A" & Int(Rnd() * 10000000000#)
Worksheets("Audit").Protect Password:=x
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub

HOWEVER, when you think of the logic, all subsequent opening events are
trying to
make changes to the Audit sheet which is now PROTECTED and not likely to be
unprotected, even by the developer, since the password is random. It seems
to me this is the cause of a failu trying to change a protected sheet.

"Geoff C" wrote:

Bernie, thank for this, but having tried it, it made no difference. Is there
anything else that might help? I've succesfully used the random
string-protect technique many times before, but not in a Workbook_Open macro
before. I don't really understand why it seems to be failing on these two
lines.

Thanks, Geoff.

"Bernie Deitrick" wrote:

Geoff,

You need to coerce the random numbe to be a string:

Worksheets("Audit").Protect Password:="A" & CStr(Int(Rnd() * 10000000000#))

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message
...
The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

...up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() *

10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 40
Default Help with Workbook_Open macro please

Thanks for the ideas guys, but nothing's working - the macro only protects
the sheet after making changes - it's never caused a problem before. Also,
while trying difference things, it worked once, but when I went back in to
work out why, it stopped working again. I think there must be something
damaged about the file. Trouble is, I really don't want to start again!

"gocush" wrote:

I used the following successfully on the FIRST run of the macro.


Private Sub Workbook_Open()

Dim x As String
On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

'...up to here, but the next two lines don't do anything. They are supposed
'to protect with a random password, and then hide the sheet....
x = "A" & Int(Rnd() * 10000000000#)
Worksheets("Audit").Protect Password:=x
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub

HOWEVER, when you think of the logic, all subsequent opening events are
trying to
make changes to the Audit sheet which is now PROTECTED and not likely to be
unprotected, even by the developer, since the password is random. It seems
to me this is the cause of a failu trying to change a protected sheet.

"Geoff C" wrote:

Bernie, thank for this, but having tried it, it made no difference. Is there
anything else that might help? I've succesfully used the random
string-protect technique many times before, but not in a Workbook_Open macro
before. I don't really understand why it seems to be failing on these two
lines.

Thanks, Geoff.

"Bernie Deitrick" wrote:

Geoff,

You need to coerce the random numbe to be a string:

Worksheets("Audit").Protect Password:="A" & CStr(Int(Rnd() * 10000000000#))

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message
...
The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

...up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() *
10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Help with Workbook_Open macro please

Geoff,

Try using Rob Bovey's CodeCleaner. It can be a lifesaver.

http://www.appspro.com/downloads/CodeCleaner.exe

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message ...
Thanks for the ideas guys, but nothing's working - the macro only protects
the sheet after making changes - it's never caused a problem before. Also,
while trying difference things, it worked once, but when I went back in to
work out why, it stopped working again. I think there must be something
damaged about the file. Trouble is, I really don't want to start again!

"gocush" wrote:

I used the following successfully on the FIRST run of the macro.


Private Sub Workbook_Open()

Dim x As String
On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

'...up to here, but the next two lines don't do anything. They are supposed
'to protect with a random password, and then hide the sheet....
x = "A" & Int(Rnd() * 10000000000#)
Worksheets("Audit").Protect Password:=x
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub

HOWEVER, when you think of the logic, all subsequent opening events are
trying to
make changes to the Audit sheet which is now PROTECTED and not likely to be
unprotected, even by the developer, since the password is random. It seems
to me this is the cause of a failu trying to change a protected sheet.

"Geoff C" wrote:

Bernie, thank for this, but having tried it, it made no difference. Is there
anything else that might help? I've succesfully used the random
string-protect technique many times before, but not in a Workbook_Open macro
before. I don't really understand why it seems to be failing on these two
lines.

Thanks, Geoff.

"Bernie Deitrick" wrote:

Geoff,

You need to coerce the random numbe to be a string:

Worksheets("Audit").Protect Password:="A" & CStr(Int(Rnd() * 10000000000#))

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message
...
The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

...up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() *
10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!



  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 252
Default Help with Workbook_Open macro please

On your "Audit" sheet are the cells in A2:D2 LOCKED?
Or are you locking them with some other macro, say in your Close_event?

If so, the next time you try to Open this file it will crash since your
Workbook_Open event tries to change these cells.

On the other hand if these cells are NOT locked what is the point?

"Geoff C" wrote:

Thanks for the ideas guys, but nothing's working - the macro only protects
the sheet after making changes - it's never caused a problem before. Also,
while trying difference things, it worked once, but when I went back in to
work out why, it stopped working again. I think there must be something
damaged about the file. Trouble is, I really don't want to start again!

"gocush" wrote:

I used the following successfully on the FIRST run of the macro.


Private Sub Workbook_Open()

Dim x As String
On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

'...up to here, but the next two lines don't do anything. They are supposed
'to protect with a random password, and then hide the sheet....
x = "A" & Int(Rnd() * 10000000000#)
Worksheets("Audit").Protect Password:=x
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub

HOWEVER, when you think of the logic, all subsequent opening events are
trying to
make changes to the Audit sheet which is now PROTECTED and not likely to be
unprotected, even by the developer, since the password is random. It seems
to me this is the cause of a failu trying to change a protected sheet.

"Geoff C" wrote:

Bernie, thank for this, but having tried it, it made no difference. Is there
anything else that might help? I've succesfully used the random
string-protect technique many times before, but not in a Workbook_Open macro
before. I don't really understand why it seems to be failing on these two
lines.

Thanks, Geoff.

"Bernie Deitrick" wrote:

Geoff,

You need to coerce the random numbe to be a string:

Worksheets("Audit").Protect Password:="A" & CStr(Int(Rnd() * 10000000000#))

HTH,
Bernie
MS Excel MVP

"Geoff C" wrote in message
...
The following macro works partially...

---------------------------------------
Private Sub Workbook_Open()

On Error GoTo Workbook_Open_Error

If Worksheets("Audit").Range("E2").Value = "New" Then
Worksheets("Audit").Range("A2").Value = Application.UserName
Worksheets("Audit").Range("B2").Value = Date
Worksheets("Audit").Range("C2").Value = Time
Randomize
Worksheets("Audit").Range("D2").Value = Rnd()

...up to here, but the next two lines don't do anything. They are supposed
to protect with a random password, and then hide the sheet....

Worksheets("Audit").Protect Password:="A" & Int(Rnd() *
10000000000#)
Worksheets("Audit").Visible = False
End If

GoTo Workbook_Open_Complete

Workbook_Open_Error:
MsgBox "Error in Workbook_Open"

Workbook_Open_Complete:

End Sub
---------------------------------------

Can someone give me some clues? I'm sure this worked yesterday!



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
Workbook_Open macro not running mrice Excel Discussion (Misc queries) 2 April 26th 06 06:45 PM
Disable Workbook_Open() Macro Dan Excel Programming 2 October 13th 04 07:52 PM
Prevent Workbook_Open macro big t Excel Programming 2 August 20th 04 12:01 PM
Workbook_Open & Macro James Cox[_2_] Excel Programming 0 July 2nd 04 03:44 PM
Workbook_Open macro created in Excel 97 problems on MAC Dick Kusleika Excel Programming 2 September 8th 03 06:42 PM


All times are GMT +1. The time now is 12:33 PM.

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

About Us

"It's about Microsoft Excel"