Expiry of Excel shee

H

Hardeep kanwar

Hi! Everyone

I don't Know Whether my Question have a Sense or not.

But it is Possible to Expire Excel Sheet on Specific Time or Date.


And Even if I Mail that sheet to any Person and he Open After the Expiry
Time or Date

I want to Show the Message "Unable to Open"


Protected Sheet is not a good Option These Password can be Break Easily


Any Help Would be Most Appreciate

Hardeep kanwar
 
P

Pecoflyer

Hi,

you can find examples and considerations on time-bombing XL sheets a
'Timebombing A Workbook
(http://www.cpearson.com/excel/workbooktimebomb.aspx)
Be aware that there is no fool-proof method of doing this.

HTH
Hi! Everyone

I don't Know Whether my Question have a Sense or not.

But it is Possible to Expire Excel Sheet on Specific Time or Date.


And Even if I Mail that sheet to any Person and he Open After th
Expiry
Time or Date

I want to Show the Message "Unable to Open"


Protected Sheet is not a good Option These Password can be Brea
Easily


Any Help Would be Most Appreciate

Hardeep kanwa

--
Pecoflye

Cheers -
*'Membership is free' (http://www.thecodecage.com)* & allows fil
upload ->faster and better answers

*Adding your XL version* to your post helps finding solution faste
 
H

Hardeep kanwar

Thanks ryguy7272 and Pecoflyer

After Click on Link which is give by both of you I got This

I am totally Stupid in VBA or Marco

How can i use this.

Option Explicit


Private Const C_NUM_DAYS_UNTIL_EXPIRATION = 30

Sub TimeBombWithDefinedName()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' TimeBombWithDefinedName
' This procedure uses a defined name to store this workbook's
' expiration date. If the expiration date has passed, a
' MsgBox is displayed and this workbook is closed.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim ExpirationDate As String
Dim NameExists As Boolean

On Error Resume Next
ExpirationDate = Mid(ThisWorkbook.Names("ExpirationDate").Value, 2)
If Err.Number <> 0 Then
'''''''''''''''''''''''''''''''''''''''''''
' Name doesn't exist. Create it.
'''''''''''''''''''''''''''''''''''''''''''
NameExists = False
ExpirationDate = CStr(DateSerial(Year(Now), _
Month(Now), Day(Now) + C_NUM_DAYS_UNTIL_EXPIRATION))
ThisWorkbook.Names.Add Name:="ExpirationDate", _
RefersTo:=Format(ExpirationDate, "short date"), _
Visible:=False
Else
NameExists = True
End If

''''''''''''''''''''''''''''''''''''''''''''''''''''''
' If the today is past the expiration date, close the
' workbook. If the defined name didn't exist, we need
' to Save the workbook to save the newly created name.
''''''''''''''''''''''''''''''''''''''''''''''''''''''
If CDate(Now) > CDate(ExpirationDate) Then
MsgBox "This workbook trial period has expired.", vbOKOnly
ThisWorkbook.Close savechanges:=False
End If

End Sub

Sub TimeBombMakeReadOnly()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' TimeBombMakeReadOnly
' This procedure uses a defined name to store the expiration
' date and if the workbook has expired, makes the workbook
' read-only.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim ExpirationDate As String
Dim NameExists As Boolean

On Error Resume Next
ExpirationDate = Mid(ThisWorkbook.Names("ExpirationDate").Value, 2)
If Err.Number <> 0 Then
'''''''''''''''''''''''''''''''''''''''''''
' Name doesn't exist. Create it.
'''''''''''''''''''''''''''''''''''''''''''
ExpirationDate = CStr(DateSerial(Year(Now), _
Month(Now), Day(Now) + C_NUM_DAYS_UNTIL_EXPIRATION))
ThisWorkbook.Names.Add Name:="ExpirationDate", _
RefersTo:=Format(ExpirationDate, "short date"), _
Visible:=False
NameExists = False
Else
NameExists = True
End If

''''''''''''''''''''''''''''''''''''''''''''''''''''''
' If the today is past the expiration date, make the
' workbook read only. We need to Save the workbook
' to keep the newly created name intact.
''''''''''''''''''''''''''''''''''''''''''''''''''''''
If CDate(Now) >= CDate(ExpirationDate) Then
If NameExists = False Then
ThisWorkbook.Save
End If
ThisWorkbook.ChangeFileAccess xlReadOnly
End If

End Sub

Sub TimeBombWithRegistry()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' TimeBombWithRegistry
' This procedure stores the expiration date in the system
' registry. Change C_REG_KEY to a registry key name that
' is used by your application.
'
' This procedure requires either the modRegistry module from
' www.cpearson.com/Excel/Registry.htm or
' www.cpearson.com/Excel/Registry.aspx
' or the RegistryWorx DLL from
' www.cpearson.com/Excel/RegistryWorx.aspx.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Const C_REG_KEY = "Software\Pearson\Test\Settings"
Dim KeyExists As Boolean
Dim ValueExists As Boolean
Dim ExpirationDate As Long
Dim B As Boolean
KeyExists = RegistryKeyExists(HKEY_CURRENT_USER, C_REG_KEY, False)
If KeyExists = True Then
'''''''''''''''''''''''''''''''''
' Key exists. Get the Value from
' the key.
'''''''''''''''''''''''''''''''''
ValueExists = RegistryValueExists(HKEY_CURRENT_USER, C_REG_KEY,
"Expiration")
If ValueExists = True Then
'''''''''''''''''''''''''''''''''''''''''
' Value exists. It will be the
' expiration date.
'''''''''''''''''''''''''''''''''''''''''
ExpirationDate = RegistryGetValue(HKEY_CURRENT_USER, C_REG_KEY,
"Expiration")
Else
'''''''''''''''''''''''''''''''''''''''''
' Value doesn't exist. Set the expiration
' date and update the Registry.
'''''''''''''''''''''''''''''''''''''''''
ExpirationDate = DateSerial(Year(Now), Month(Now), _
Day(Now) + C_NUM_DAYS_UNTIL_EXPIRATION)
B = RegistryCreateValue(HKEY_CURRENT_USER, C_REG_KEY, "Expiration",
CLng(ExpirationDate))
If B = False Then
' error creating registry value
End If
End If
Else
''''''''''''''''''''''''''''''''''''''''
' Key doesn't exist. Set the expiration
' date and create the Key and Value.
''''''''''''''''''''''''''''''''''''''''
ExpirationDate = DateSerial(Year(Now), Month(Now), _
Day(Now) + C_NUM_DAYS_UNTIL_EXPIRATION)
B = RegistryCreateKey(HKEY_CURRENT_USER, C_REG_KEY)
If B = True Then
B = RegistryCreateValue(HKEY_CURRENT_USER, C_REG_KEY, "Expiration",
ExpirationDate)
If B = False Then
' error creating registry value
End If
Else
' error creating registry key
End If
End If
'''''''''''''''''''''''''''''''''''''''''''
' If Now is past the expiration date,
' close the workbook.
'''''''''''''''''''''''''''''''''''''''''''
If CLng(Now) > CLng(ExpirationDate) Then
ThisWorkbook.Close savechanges:=False
End If

End Sub


Actually i want to Nobody can See the file after 10 minute or after 1 hour

Thanks in Advance

Hardeep kanwar
 
H

hardeep.kanwar

Simon said:
A link to a much simpler version can be found her
http://tinyurl.com/cruplb to access the download you will have to take
moment join the forum but it's entirely free!

Thanks Sir

Now, i got this

Private Sub Workbook_Open()
If Date >= "26/09/08" Then
MsgBox "Trial period has expired please call John Doe", vbOKOnly
"Trial Period Expired"
ThisWorkbook.Close (False)
End If
End Sub

As i already mentioned that i am totally stupid in Macros and VBA

Secondly, I want to Expired my Sheet with in a minutes i.e after ope
the sheet it will expire after 5 Minute.

Thanks in Advance

Hardeep kanwa
 
S

Simon Lloyd

hardeep.kanwar;288649 said:
Thanks Si

Now, i got thi

Private Sub Workbook_Open(
If Date >= "26/09/08" The
MsgBox "Trial period has expired please call John Doe", vbOKOnly
"Trial Period Expired
ThisWorkbook.Close (False
End I
End Su

As i already mentioned that i am totally stupid in Macros and VB

Secondly, I want to Expired my Sheet with in a minutes i.e after ope
the sheet it will expire after 5 Minute

Thanks in Advanc

Hardeep kanwa

Hardeep, thats a workbook event macro and it's entered like thi
*How to Save a Workbook Event Macro*
1. *Copy* the macro using *CTRL+C* keys.
2. Open your Workbook and *Right Click* on any *Worksheet's Name Tab*
3. *Left Click* on *View Code* in the pop up menu.
4. Press *ALT+F11* keys to open the *Visual Basic Editor.*
5. Press *CTRL+R* keys to shift the focus to the *Project Explore
Window*
6. Press the *Down Arrow Key* until *ThisWorkbook* is highlighted i
blue.
7. *Press* the *Enter* key to move the cursor to the *Code Window*
8. *Paste* the macro code using *CTRL+V*
9. *Save* the macro in your Workbook using *CTRL+S*To use
timer to time how long the workbook is open you would have to use th
OnTime event read up on it here 'Pearson Software Consulting
(http://www.cpearson.com/excel/OnTime.aspx

--
Simon Lloy

Regards,
Simon Lloyd
'The Code Cage' (http://www.thecodecage.com
 
H

hardeep.kanwar

Simon said:
Hardeep, thats a workbook event macro and it's entered like this
*How to Save a Workbook Event Macro*
1. *Copy* the macro using *CTRL+C* keys.
2. Open your Workbook and *Right Click* on any *Worksheet's Name Tab*
3. *Left Click* on *View Code* in the pop up menu.
4. Press *ALT+F11* keys to open the *Visual Basic Editor.*
5. Press *CTRL+R* keys to shift the focus to the *Project Explore
Window*
6. Press the *Down Arrow Key* until *ThisWorkbook* is highlighted i
blue.
7. *Press* the *Enter* key to move the cursor to the *Code Window*
8. *Paste* the macro code using *CTRL+V*
9. *Save* the macro in your Workbook using *CTRL+S*To use
timer to time how long the workbook is open you would have to use th
OnTime event read up on it here 'Pearson Software Consulting
(http://www.cpearson.com/excel/OnTime.aspx)

Sir, Is it possible to Replace Date With Time

Like: 00:00:30

that means After 30 Seconds it will Corrupted the Sheet ands will no
open even from the mail.

thanks in Advanc
 
S

Simon Lloyd

hardeep.kanwar;288889 said:
Sir, Is it possible to Replace Date With Tim

Like: 00:00:3

that means After 30 Seconds it will Corrupted the Sheet ands will no
open even from the mail

thanks in Advanc
You cannot "corrupt" or whatever any excel file that is an attachment
you can only manipulate it once its downloaded and opened, it is easy t
stop a macro running when opening Excel so if you are trying to protec
your workbook and contents this way you will be disappointed

Timing is done via the ontime method as described at Chip Pearson
site, the problem is if you allow them to view the workbook at all the
the sheets will be unhidden and they may crash the code and be able t
carry one viewing the workbook

--
Simon Lloy

Regards,
Simon Lloyd
'The Code Cage' (http://www.thecodecage.com
 
H

hardeep.kanwar

Simon said:
You cannot "corrupt" or whatever any excel file that is an attachment,
you can only manipulate it once its downloaded and opened, it is easy to
stop a macro running when opening Excel so if you are trying to protect
your workbook and contents this way you will be disappointed!

Timing is done via the ontime method as described at Chip Pearsons
site, the problem is if you allow them to view the workbook at all then
the sheets will be unhidden and they may crash the code and be able to
carry one viewing the workbook!

Thanks Sir,

From this post i have learn lots of things

thanks Again

Hardeep Kanwar
 
S

Simon Lloyd

hardeep.kanwar;289073 said:
Thanks Sir,

From this post i have learn lots of things

thanks Again

Hardeep Kanwar
There are some things you can do, use the code you have along with
http://www.thecodecage.com/forumz/downloads/11-force-macro-use.html then
if then you can use the Ontime method as shown at Chip Pearsons site to
hide all the sheets except the welcome sheet after 5 minutes

*How To Say Thanks!*
If you have found my tip helpful then please click on the
button (like the one on the left) to the bottom right of my post to
register your appreciation


--
Simon Lloyd

Regards,
Simon Lloyd
'The Code Cage' (http://www.thecodecage.com)
 
R

RyGuy

Can you download the example Chip has on his site? I already sent you the
link. Copy/paste your data into that downloaded file. Does that work for
you, or do you have lots and lots of functions, other code, etc., that you
can't transport to the downloaded file.

HTH,
Ryan---
 
H

hardeep.kanwar

RyGuy;290236 said:
Can you download the example Chip has on his site? I already sent you
the
link. Copy/paste your data into that downloaded file. Does that work
for
you, or do you have lots and lots of functions, other code, etc., that
you
can't transport to the downloaded file.

HTH,
Ryan---

Thanks for Reply

Problem is Solved:)

Thanks again
 
S

Simon Lloyd

hardeep.kanwar;290286 said:
Thanks for Repl

Problem is Solved:

Thanks agai

If you feel it may help others then please tell us what your solutio
was. if a particular post was helpful then click the thumbs up on tha
post....in future a post marked helpful may help others in you
situation

Glad we could be of help!

*How To Say Thanks!*
If you have found my tip helpful then please click on th
button (like the one on the left) to the bottom right of my post t
register your appreciatio

--
Simon Lloy

Regards,
Simon Lloyd
'The Code Cage' (http://www.thecodecage.com
 
H

hardeep.kanwar

Simon said:
If you feel it may help others then please tell us what your solutio
was. if a particular post was helpful then click the thumbs up on tha
post....in future a post marked helpful may help others in you
situation.


Glad we could be of help!


*How To Say Thanks!*
If you have found my tip helpful then please click on th
button (like the one on the left) to the bottom right of my post t
register your appreciation

I Found this
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds A
Long)
Private Sub Workbook_Open()
Dim wks As Worksheet
If Time >= "00.00.10" Then
Sleep 10000
MsgBox "Trial period has expired please call John Doe", vbOKOnly
"Trial Period Expired"
For Each wks In ActiveWorkbook.Worksheets
wks.Cells.ClearContents
Next wks
ThisWorkbook.Close (True)
End If
End Sub

Hardeep kanwa
 
S

StickThatInYourPipeAndSmokeIt

There are some things you can do, use the code you have along with
http://www.thecodecage.com/forumz/downloads/11-force-macro-use.html then
if then you can use the Ontime method as shown at Chip Pearsons site to
hide all the sheets except the welcome sheet after 5 minutes

*How To Say Thanks!*
If you have found my tip helpful then please click on the
button (like the one on the left) to the bottom right of my post to
register your appreciation

*How to say GET A CLUE!*

Most folks view Usenet in a completely 100% text only manner.

You web based Usenet access dopes are the ones that think your fancy
posts actually get viewed by others the same way you post it. Most only
see the text portions.

There are no damned buttons here, idiot!

Good advice, however, just not a very good grasp of the forum.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top