ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Clipboard turn empty running worksheet.unprotect - workaround ? (https://www.excelbanter.com/excel-programming/351631-clipboard-turn-empty-running-worksheet-unprotect-workaround.html)

Marie J-son[_7_]

Clipboard turn empty running worksheet.unprotect - workaround ?
 
Hi,

I have a worksheet I need to have protected, and when I run code to restore
cell format, I unprotect it temporary. However, this causes clipboard to
turn empty and since I run the code both at worksheet_activate and
worksheet_change events, the result is that you can't copy-paste between
sheets.

At line below, the clipboard turn empty ...
"Application.Worksheets(XshtName).UnProtect Password:=sPass"

1/ Is there a way to work around this and still use the code both at
worksheet_change and worksheet_activate?
2/ The reason why I have it on worksheet_activate is because I want to
restore cell formats when drag and drop occure from other sheets - - it
doesn't trig the worksheet_change event, I'm told. Right? Workaround?


/Kind regards



Jim Rech

Clipboard turn empty running worksheet.unprotect - workaround ?
 
I think your best approach is to turn on worksheet protection with the
UserinterfaceOnly parameter set to true.

For example, protect Sheet1 manually. If A1 is locked and you run this code
it will fail of course:

Sub CopyCell()
Range("C1").Copy Range("A1")
End Sub

But first run this code and then try it:

Sub UserIntefaceOnly()
Sheet1.Protect , , , , True
End Sub


The only catch is that UserInterfaceOnly setting is not saved with a
workbook. So when it is re-opened it has to be set again by macro. You
should use your Auto_Open or Workbook_Open code to do this.

--
Jim
"Marie J-son" wrote in message
...
| Hi,
|
| I have a worksheet I need to have protected, and when I run code to
restore
| cell format, I unprotect it temporary. However, this causes clipboard to
| turn empty and since I run the code both at worksheet_activate and
| worksheet_change events, the result is that you can't copy-paste between
| sheets.
|
| At line below, the clipboard turn empty ...
| "Application.Worksheets(XshtName).UnProtect Password:=sPass"
|
| 1/ Is there a way to work around this and still use the code both at
| worksheet_change and worksheet_activate?
| 2/ The reason why I have it on worksheet_activate is because I want to
| restore cell formats when drag and drop occure from other sheets - - it
| doesn't trig the worksheet_change event, I'm told. Right? Workaround?
|
|
| /Kind regards
|
|



Marie J-son[_7_]

Clipboard turn empty running worksheet.unprotect - workaround ?
 
Hi,

This sounds ok - will there be any security fallbacks doing this? The code
is today protected with a looong password (for the Rob Bovey utilities
password cracker etc. had to work to long for it to be likly to use it),
both workbook and worksheets. Will this affect the possiblity of the user
to come into the code?

/Kind regards



"Jim Rech" skrev i meddelandet
...
I think your best approach is to turn on worksheet protection with the
UserinterfaceOnly parameter set to true.

For example, protect Sheet1 manually. If A1 is locked and you run this
code
it will fail of course:

Sub CopyCell()
Range("C1").Copy Range("A1")
End Sub

But first run this code and then try it:

Sub UserIntefaceOnly()
Sheet1.Protect , , , , True
End Sub


The only catch is that UserInterfaceOnly setting is not saved with a
workbook. So when it is re-opened it has to be set again by macro. You
should use your Auto_Open or Workbook_Open code to do this.

--
Jim
"Marie J-son" wrote in message
...
| Hi,
|
| I have a worksheet I need to have protected, and when I run code to
restore
| cell format, I unprotect it temporary. However, this causes clipboard to
| turn empty and since I run the code both at worksheet_activate and
| worksheet_change events, the result is that you can't copy-paste between
| sheets.
|
| At line below, the clipboard turn empty ...
| "Application.Worksheets(XshtName).UnProtect Password:=sPass"
|
| 1/ Is there a way to work around this and still use the code both at
| worksheet_change and worksheet_activate?
| 2/ The reason why I have it on worksheet_activate is because I want to
| restore cell formats when drag and drop occure from other sheets - - it
| doesn't trig the worksheet_change event, I'm told. Right? Workaround?
|
|
| /Kind regards
|
|





Marie J-son[_7_]

Clipboard turn empty running worksheet.unprotect - workaround ?
 
When testing, it seems like a lot of other changes empty the clipboard
also - when I copy a cell and change number format or font.bold with code
like below, the paste icon grays out right on the line. Is this true? Can I
not change anything without clipboard get empty.

The mystery closes up when I have one worksheet I run a lot of code on
including Font and numberformat that doesn't gray out the paste button -
until i come to last line " Exit Sub". When the code stop, the paste button
gray out.

Testsubs - I tested it on a brand new workbook with same result - 1/ Copy 2/
Run code 3/ can't paste anymo

Sub test()
Application.ActiveCell.Font.Bold = True
'Application.ActiveCell.NumberFormat = "@"
End Sub

What is happening?

/Regards

-----------------------


"Marie J-son" skrev i meddelandet
...
Hi,

I have a worksheet I need to have protected, and when I run code to
restore cell format, I unprotect it temporary. However, this causes
clipboard to turn empty and since I run the code both at
worksheet_activate and worksheet_change events, the result is that you
can't copy-paste between sheets.

At line below, the clipboard turn empty ...
"Application.Worksheets(XshtName).UnProtect Password:=sPass"

1/ Is there a way to work around this and still use the code both at
worksheet_change and worksheet_activate?
2/ The reason why I have it on worksheet_activate is because I want to
restore cell formats when drag and drop occure from other sheets - - it
doesn't trig the worksheet_change event, I'm told. Right? Workaround?


/Kind regards




Jim Rech

Clipboard turn empty running worksheet.unprotect - workaround ?
 
Yes, the clipboard empties on the slightest pretext. Defer your copy as
late as possible.

--
Jim
"Marie J-son" wrote in message
...
| When testing, it seems like a lot of other changes empty the clipboard
| also - when I copy a cell and change number format or font.bold with code
| like below, the paste icon grays out right on the line. Is this true? Can
I
| not change anything without clipboard get empty.
|
| The mystery closes up when I have one worksheet I run a lot of code on
| including Font and numberformat that doesn't gray out the paste button -
| until i come to last line " Exit Sub". When the code stop, the paste
button
| gray out.
|
| Testsubs - I tested it on a brand new workbook with same result - 1/ Copy
2/
| Run code 3/ can't paste anymo
|
| Sub test()
| Application.ActiveCell.Font.Bold = True
| 'Application.ActiveCell.NumberFormat = "@"
| End Sub
|
| What is happening?
|
| /Regards
|
| -----------------------
|
|
| "Marie J-son" skrev i meddelandet
| ...
| Hi,
|
| I have a worksheet I need to have protected, and when I run code to
| restore cell format, I unprotect it temporary. However, this causes
| clipboard to turn empty and since I run the code both at
| worksheet_activate and worksheet_change events, the result is that you
| can't copy-paste between sheets.
|
| At line below, the clipboard turn empty ...
| "Application.Worksheets(XshtName).UnProtect Password:=sPass"
|
| 1/ Is there a way to work around this and still use the code both at
| worksheet_change and worksheet_activate?
| 2/ The reason why I have it on worksheet_activate is because I want to
| restore cell formats when drag and drop occure from other sheets - - it
| doesn't trig the worksheet_change event, I'm told. Right? Workaround?
|
|
| /Kind regards
|
|
|




All times are GMT +1. The time now is 05:33 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com