Страницы: 1
RSS
Запрет копирования и вставки
 
Добрый вечер.  
возможно ли сделать так, чтобы на листе нельзя было вручную использовать метод копировать-вставить? т.е. полностью запретить copy-paste?  
Спасибо.
 
{quote}{login=Диана}{date=12.02.2011 07:19}{thema=Запрет копирования и вставки}{post}Добрый вечер.  
возможно ли сделать так, чтобы на листе нельзя было вручную использовать метод копировать-вставить? т.е. полностью запретить copy-paste?  
Спасибо.{/post}{/quote}  
 
Использовать защиту листа.
 
спасибо за идею :) уточню ситуацию :)  
Есть макрос, срабатывает по Worksheet_Change:  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
 
Dim sR As Range  
 
Set sR = Range(Cells(9, 4), Cells(opr_a, 34))  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, sR) Is Nothing Then  
Call tab35_49  
Call hide  
End If  
End Sub  
 
opr_a - это пользовательская функция, определяет последнюю ячейку заполненную.  
 
но дело в том, что если изменяется больше одной ячейки за один раз (допустим скопировать одну ячейку и выделить диапазон, потом вставить), в этом случае макрос отказывается работать.  
 
Возможно ли каким-то образом исправить ситуацию?  
 
Call tab35_49 - математические вычисления  
Call hide - скрытие и открытие дополнительных строк и столбцов, не входящих в диапазон.  
 
Спасибо :)
 

Привет! <BR>Вот тут было подобное: http://www.planetaexcel.ru/forum.php?thread_id=13413

 
Спасибо, Юрий, за ссылочку... изучила... получается hotkey отключены, отлично. Но конт. меню позволяет копировать и вставлять...
 
а возможно ли как-нибудь мой макрос подправить, чтобы он срабатывал при изменении нескольких ячеек диапазона одновременно?
 
По поводу контекстного меню у Димы ведь всё реализовано.    
По поводу СРАЗУ нескольких ячеек - утверждать не могу, что это невозможно, но такое решение мне не попадалось.
 
http://www.planetaexcel.ru/forum.php?thread_id=12215
 
Спасибо, Юрий, разбираюсь со ссылками... позже отпишусь, что получилось :)
 
Привет, Ди!  
 
> если изменяется больше одной ячейки за один раз ..., в этом случае макрос отказывается работать.  
Возможно ли каким-то образом исправить ситуацию?  
 
Да, удалить строку  
If Target.Cells.Count > 1 Then Exit Sub  
 
Если надо произвести какие-то действия с каждой измененной ячейкой в sR, то  
 
set Target=intersect(Target, sR)  
if not target is nothing then  
for each x in Target  
'действия с яч. х  
next  
end if  
Если пересечения нет, ошибки не будет и цикл не пройдет ни разу.
 
Казанский, спасибо за принятие участия и помощь! :) внедряю :)
 
Юрий, Казанский, и примерам Дмитрия и ZVI спасибо за помощь, проблему решила :)
 
Приложил ещё один вариант блокировки вставки на листе
 
Private Sub Worksheet_Activate() делает команды контекстного меню "вырезать", "копировать", "вставить", "специальная вставка" недоступными.  
Предупреждение: для возврата к нормальной жизни закоментировать exit sub и выполнить ещё раз.
 
{quote}{login=k61}{date=14.02.2011 07:31}{thema=ещё вариант}{post}Private Sub Worksheet_Activate() делает команды контекстного меню "вырезать", "копировать", "вставить", "специальная вставка" недоступными.  
Предупреждение: для возврата к нормальной жизни закоментировать exit sub и выполнить ещё раз.{/post}{/quote}  
Тогда Вам ещё и от Ctrl-С, Ctrl-X внутри ячеек или в зоне формулы придется избавляться, а также от Ctrl-V и прочих "горячих" клавиш :-)
 
да придётся. но способ убиения команд меню тоже имеет место быть:)
 
{quote}{login=k61}{date=14.02.2011 09:02}{thema=re:ZVI}{post}да придётся. но способ убиения команд меню тоже имеет место быть:){/post}{/quote}Да, конечно.  
Но я о том, что заблокировать, например, работу CTRL-C и CTRL-V в режиме редактирования ячейки с помощью OnKey не получится, придется задействовать сабклассинг с помощью API, что совсем не просто.
Страницы: 1
Читают тему
Наверх