Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Excel. Запрет Cut в меню, Как запретить функцию Cut 
:(
    Опции темы
Сквозняк
  Дата 19.11.2003, 10:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите, плз, как в макросе описать запрет функции Cut. Есть файл Excel, в котором рушатся формулы, если использовать функции Cut/Paste. Как в auto_open() описать запрет функции Cut при открытии файла и снятие запрета при его закрытии? Или есть другие варианты решения этой проблемы?
  Вверх
Alles
Дата 19.11.2003, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Цитата
Есть файл Excel, в котором рушатся формулы, если использовать функции Cut/Paste.


что за формулы ? или связанные ссылки ?

PM MAIL ICQ   Вверх
Сквозняк
Дата 19.11.2003, 13:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Связанные ссылки
  Вверх
Alles
Дата 20.11.2003, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



C тебя как с партизана надо по слову вытаскивать ...... немногословный ты наш. !
А редактируется что у тебя и каким образом ? . Если просто запретить тогда сделай защиту листа , и открой доступ на редактирование тех ячеек которые необходимо редактировать , я в тех ячейках где прописаны ссылки ?..... EXCEL сам бортанет при активизации.
PM MAIL ICQ   Вверх
Сквозняк
Дата 20.11.2003, 15:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пишу подробнее и конкретнее:
есть ячейка F36. в ней вводится какое-то значение. В ячейке H38 забита ссыла "=H36*$F36*IF($D36=1;H$5;H$4)/1000".

есть ячейка F39. в ней пока пусто. В ячейке H41 забита ссыла "=H39*$F39*IF($D39=1;H$5;H$4)/1000".

Народу по каким-то причинам хочется значение из F36 перенести в F39. Причем делают они это с использованием Cut/Paste. После этого в ячейке H38 образуется ссыла =H36*$F39*IF($D36=1;H$5;H$4)/1000", а в ячейке H41 - "=H39*#REF!*IF($D39=1;H$5;H$4)/1000".
На листе все ячейки защищены, оставлены только те, в которые народ вносит значения. Т.е. получается, что F36 и F39 открыты для редактирования, а H38 и H41 - защищены.
Сдается мне, что эта проблема решается очень просто, а вот как - не пойму smile.gif
  Вверх
Alles
Дата 21.11.2003, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub

Ну вот так вроде работает .
PM MAIL ICQ   Вверх
Alles
Дата 21.11.2003, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
N = Selection.Address
M = Range(N).Cells
If M <> Empty Then Application.CutCopyMode = False
End Sub

А можно и вот так. В первом случае у тебя идет блокирование CutCopy полностью независимо от того пустая ли ячейка для Вставки, а в этом варианте будет блокироваться только если ячейка для Вставки не пустая.
Не буду спорить если меня кто то поправит.
PM MAIL ICQ   Вверх
Сквозняк
Дата 21.11.2003, 11:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо, все конечно классно работает smile.gif Но мне нужно было заглушить только Cut, а не Copy sad.gif Есть такой вариант?
  Вверх
Сквозняк
Дата 21.11.2003, 12:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вроде бы победил:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Application.CutCopyMode
Case Is = xlCut
Application.CutCopyMode = False
End Select
End Sub

Это только для одного листа, а не для всей книги.
Спасибо.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.