Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос "Formula_Protect" - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Готовые решения » Макрос "Formula_Protect" (Не мешающие работе методы защиты формул листа)
Макрос "Formula_Protect"
Alex_ST Дата: Вторник, 06.11.2012, 11:56 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Просматривая очень интересную книжку "Excel. Трюки (100 профессиональных приёмов)" авторов Р.Холи и Д.Холи, наткнулся на очень интересный способ защиты формул листа от кривых рук не внимательных юзеров - использование проверки данных. На основе предложенного в книге "ручного" метода слепил макрос: [vba]
Code
Sub Formula_Protect_with_CellValidation()
        ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Select
         With Selection.Validation
             .Delete
             .Add Type:=xlValidateCustom, Formula1:="="""""
             .ErrorTitle = "ОШИБКА!"
             .ErrorMessage = "В ячейке формула!" & vbCrLf & "Ввод данных запрещён!"
             .ShowError = True
         End With
End Sub
[/vba]
Защищает от случайного ввода данных в ячейки с формулами с клавиатуры.
Не защищает от копи-паста (т.к. тогда и условия проверки ячейки тоже заменяются).
Вот только никак не соображу, можно ли сделать, чтобы совсем стереть формулу было нельзя sad
Хотя это и не очень принципиально, т.к. стирание - это уже будет не случайный ручной ввод данных, а намеренная порча, а с такими юзвергами уже и разборки должны быть другими admin



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 06.11.2012, 20:04
 
Ответить
СообщениеПросматривая очень интересную книжку "Excel. Трюки (100 профессиональных приёмов)" авторов Р.Холи и Д.Холи, наткнулся на очень интересный способ защиты формул листа от кривых рук не внимательных юзеров - использование проверки данных. На основе предложенного в книге "ручного" метода слепил макрос: [vba]
Code
Sub Formula_Protect_with_CellValidation()
        ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Select
         With Selection.Validation
             .Delete
             .Add Type:=xlValidateCustom, Formula1:="="""""
             .ErrorTitle = "ОШИБКА!"
             .ErrorMessage = "В ячейке формула!" & vbCrLf & "Ввод данных запрещён!"
             .ShowError = True
         End With
End Sub
[/vba]
Защищает от случайного ввода данных в ячейки с формулами с клавиатуры.
Не защищает от копи-паста (т.к. тогда и условия проверки ячейки тоже заменяются).
Вот только никак не соображу, можно ли сделать, чтобы совсем стереть формулу было нельзя sad
Хотя это и не очень принципиально, т.к. стирание - это уже будет не случайный ручной ввод данных, а намеренная порча, а с такими юзвергами уже и разборки должны быть другими admin

Автор - Alex_ST
Дата добавления - 06.11.2012 в 11:56
Формуляр Дата: Вторник, 06.11.2012, 12:15 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Классный фокус!
А зачем Select?


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеКлассный фокус!
А зачем Select?

Автор - Формуляр
Дата добавления - 06.11.2012 в 12:15
Alex_ST Дата: Вторник, 06.11.2012, 12:22 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Select в принципе можно и убрать, но тогда будет не видно, что макрос отработал.
И к тому же от Select есть ещё один побочный плюс: если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах.
Я вообще-то сам сначала сделал без Select, но потом поюзал и решил, что его намного удобнее оставить.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 06.11.2012, 20:07
 
Ответить
СообщениеSelect в принципе можно и убрать, но тогда будет не видно, что макрос отработал.
И к тому же от Select есть ещё один побочный плюс: если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах.
Я вообще-то сам сначала сделал без Select, но потом поюзал и решил, что его намного удобнее оставить.

Автор - Alex_ST
Дата добавления - 06.11.2012 в 12:22
Alex_ST Дата: Вторник, 06.11.2012, 12:34 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
В той же книжке нарыл и "по мотивам" сделал защиту формул ещё одним методом
1. В стандартном модуле (можно в Personal) пишете процедуру, которая сделает "беззащитными" все ячейки листа кроме ячеек с формулами:[vba]
Code
Sub Formula_Protect_with_SheetProtection()
      With ActiveSheet: .Unprotect: .Cells.Locked = False: .Cells.FormulaHidden = True: .EnableSelection = xlNoRestrictions: End With
      ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Locked = True
End Sub
[/vba]
2. В модуле листа пишете процедуру включения защиты листа при выборе защищаемой ячейки:[vba]
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
         Me.Unprotect
         If Target.Locked Then Me.Protect
End Sub
[/vba]

Данный способ будет работать только если у юзверга включены макросы.
Зато покоцать формулу делитом и копи-пастом не даст!



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 06.11.2012, 13:43
 
Ответить
СообщениеВ той же книжке нарыл и "по мотивам" сделал защиту формул ещё одним методом
1. В стандартном модуле (можно в Personal) пишете процедуру, которая сделает "беззащитными" все ячейки листа кроме ячеек с формулами:[vba]
Code
Sub Formula_Protect_with_SheetProtection()
      With ActiveSheet: .Unprotect: .Cells.Locked = False: .Cells.FormulaHidden = True: .EnableSelection = xlNoRestrictions: End With
      ActiveWindow.RangeSelection.SpecialCells(xlCellTypeFormulas).Locked = True
End Sub
[/vba]
2. В модуле листа пишете процедуру включения защиты листа при выборе защищаемой ячейки:[vba]
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
         Me.Unprotect
         If Target.Locked Then Me.Protect
End Sub
[/vba]

Данный способ будет работать только если у юзверга включены макросы.
Зато покоцать формулу делитом и копи-пастом не даст!

Автор - Alex_ST
Дата добавления - 06.11.2012 в 12:34
Alex_ST Дата: Среда, 21.11.2012, 12:50 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
К стати, наткнулся на "бяку": если при втором способе защиты выделена ячейка с формулой, то, естественно, включается защита листа по умолчанию и оказываются невозможными группировка/разгруппировка строк/столбцов (понижение/повышение уровня) и применение фильтров.
Конечно, можно и другую ячейку выбрать после того, как тебя "обругают", что ячейка защищена, но лучше этого просто избежать, изменив в модуле листа процедуру так:[vba]
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Unprotect: Me.EnableOutlining = True
    If Target.Locked Then Me.Protect Contents:=True, Scenarios:=True, UserinterfaceOnly:=True, AllowFiltering:=True
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеК стати, наткнулся на "бяку": если при втором способе защиты выделена ячейка с формулой, то, естественно, включается защита листа по умолчанию и оказываются невозможными группировка/разгруппировка строк/столбцов (понижение/повышение уровня) и применение фильтров.
Конечно, можно и другую ячейку выбрать после того, как тебя "обругают", что ячейка защищена, но лучше этого просто избежать, изменив в модуле листа процедуру так:[vba]
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Unprotect: Me.EnableOutlining = True
    If Target.Locked Then Me.Protect Contents:=True, Scenarios:=True, UserinterfaceOnly:=True, AllowFiltering:=True
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 21.11.2012 в 12:50
v__step Дата: Суббота, 05.01.2013, 23:54 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Я давно искал способ облегчённой защиты - что-то вроде лёгкой брони, а всё оказалось так просто!
Вот спасибо!
Поэкспериментировал с таким результатом: в ручном режиме в любую защищаемую ячейку (с константой или формулой) в окне проверки достаточно записать один знак = (больше ничего!) smile


С уважением, Владимир

Сообщение отредактировал v__step - Суббота, 05.01.2013, 23:55
 
Ответить
СообщениеЯ давно искал способ облегчённой защиты - что-то вроде лёгкой брони, а всё оказалось так просто!
Вот спасибо!
Поэкспериментировал с таким результатом: в ручном режиме в любую защищаемую ячейку (с константой или формулой) в окне проверки достаточно записать один знак = (больше ничего!) smile

Автор - v__step
Дата добавления - 05.01.2013 в 23:54
Alex_ST Дата: Воскресенье, 06.01.2013, 22:25 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Цитата (v__step)
Вот спасибо!
Пожалуйста.
Но мне всё-таки больше нравится второй способ, т.к защищает ячейки с формулами от делита и копи-паста.
А макросы у нас на работе у всех включены по умолчанию, т.к. приходится работать с листами-заданиями, шаблон которых я слепил лет 12-14 назад, используя комбобоксы, потому что тогда ещё не знал о возможности использования именованных диапазонов для списков проверки данных cry А потом Ай-Ти-шники уже сделали импорт из базы данных в такие шаблоны. Так что переделывать не имеет смысла.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Цитата (v__step)
Вот спасибо!
Пожалуйста.
Но мне всё-таки больше нравится второй способ, т.к защищает ячейки с формулами от делита и копи-паста.
А макросы у нас на работе у всех включены по умолчанию, т.к. приходится работать с листами-заданиями, шаблон которых я слепил лет 12-14 назад, используя комбобоксы, потому что тогда ещё не знал о возможности использования именованных диапазонов для списков проверки данных cry А потом Ай-Ти-шники уже сделали импорт из базы данных в такие шаблоны. Так что переделывать не имеет смысла.

Автор - Alex_ST
Дата добавления - 06.01.2013 в 22:25
v__step Дата: Понедельник, 07.01.2013, 00:41 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

А у меня задача прямо противоположная: каждый столбец соответствует расчётной ситуации, и мы только и делаем, что плодим их
Теперь сбылась моя мечта smile , и формулы получили защиту, при этом копирование не запрещено


С уважением, Владимир

Сообщение отредактировал v__step - Понедельник, 07.01.2013, 00:41
 
Ответить
СообщениеА у меня задача прямо противоположная: каждый столбец соответствует расчётной ситуации, и мы только и делаем, что плодим их
Теперь сбылась моя мечта smile , и формулы получили защиту, при этом копирование не запрещено

Автор - v__step
Дата добавления - 07.01.2013 в 00:41
Serge1400 Дата: Суббота, 02.07.2016, 16:06 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И к тому же от Select есть ещё один побочный плюс: если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах.
Я вообще-то сам сначала сделал без Select, но потом поюзал и решил, что его намного удобнее оставить.

Шикарная защита от "дурака" - прям то что доктор прописал!
После 5-6 часов почти непрерывного вбивания данных в таблицы, запросто можно непреднамеренно "колупнуть" ячейки с формулами - прецеденты случаются и уследить за этим почти невозможно.
Спасибо за труд и разъяснения!
Правда пришлось попыхтеть, почитать, поэкспериментировать часа 2-3 - я пользователь лишь слегка продвинутый. Все сделал и все работает!
Остался открытым лишь один вопрос: как вот это сделать "если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах"?
Я честно бился 2 часа подряд, но ничего у меня не получается.
P.S. А можно как-нибудь в этом варианте сделать(написать) исключение для 1-2-ух определенных столбцов в таблице и оставить их без защиты?


Сообщение отредактировал Serge1400 - Суббота, 02.07.2016, 19:43
 
Ответить
Сообщение
И к тому же от Select есть ещё один побочный плюс: если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах.
Я вообще-то сам сначала сделал без Select, но потом поюзал и решил, что его намного удобнее оставить.

Шикарная защита от "дурака" - прям то что доктор прописал!
После 5-6 часов почти непрерывного вбивания данных в таблицы, запросто можно непреднамеренно "колупнуть" ячейки с формулами - прецеденты случаются и уследить за этим почти невозможно.
Спасибо за труд и разъяснения!
Правда пришлось попыхтеть, почитать, поэкспериментировать часа 2-3 - я пользователь лишь слегка продвинутый. Все сделал и все работает!
Остался открытым лишь один вопрос: как вот это сделать "если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах"?
Я честно бился 2 часа подряд, но ничего у меня не получается.
P.S. А можно как-нибудь в этом варианте сделать(написать) исключение для 1-2-ух определенных столбцов в таблице и оставить их без защиты?

Автор - Serge1400
Дата добавления - 02.07.2016 в 16:06
Alex_ST Дата: Суббота, 02.07.2016, 20:12 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
как вот это сделать "если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах"?
1. Выделяете необходимый диапазон ячеек (если нужны все ячейки на листе, то достаточно ОДНУ ячейку, все не обязательно)
2. Давите F5 - получаете

3. Кликаете на "Выделить" - получаете

4. Выбираете то, что хотите выделить, и давите на ОК.
5. Радуетесь hands
К сообщению приложен файл: 1403052.jpg (14.0 Kb) · 3518272.jpg (32.6 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Суббота, 02.07.2016, 20:15
 
Ответить
Сообщение
как вот это сделать "если ячейки с формулами окажутся выделенными, то с них будет легко и снять проверку при необходимости что-то подправить в формулах"?
1. Выделяете необходимый диапазон ячеек (если нужны все ячейки на листе, то достаточно ОДНУ ячейку, все не обязательно)
2. Давите F5 - получаете

3. Кликаете на "Выделить" - получаете

4. Выбираете то, что хотите выделить, и давите на ОК.
5. Радуетесь hands

Автор - Alex_ST
Дата добавления - 02.07.2016 в 20:12
Alex_ST Дата: Суббота, 02.07.2016, 20:21 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
А можно как-нибудь в этом варианте сделать(написать) исключение для 1-2-ух определенных столбцов в таблице и оставить их без защиты?
А просто не выделять эти столбцы перед вызовом макроса защиты - для Вас не вариант?

Тогда, извините, это не ко мне, т.к. я всегда пишу УНИВЕРСАЛЬНЫЕ макросы, не привязанные к именам книг, листов, конкретным диапазонам, столбцам, строкам, ячейкам
Универсальный инструмент - это для всех, а специальный делается по заказу. По заказам же я практически никогда не пишу.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
А можно как-нибудь в этом варианте сделать(написать) исключение для 1-2-ух определенных столбцов в таблице и оставить их без защиты?
А просто не выделять эти столбцы перед вызовом макроса защиты - для Вас не вариант?

Тогда, извините, это не ко мне, т.к. я всегда пишу УНИВЕРСАЛЬНЫЕ макросы, не привязанные к именам книг, листов, конкретным диапазонам, столбцам, строкам, ячейкам
Универсальный инструмент - это для всех, а специальный делается по заказу. По заказам же я практически никогда не пишу.

Автор - Alex_ST
Дата добавления - 02.07.2016 в 20:21
Serge1400 Дата: Суббота, 02.07.2016, 21:09 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А просто не выделять эти столбцы перед вызовом макроса защиты - для Вас не вариант?

Тогда, извините, это не ко мне, т.к. я всегда пишу УНИВЕРСАЛЬНЫЕ макросы, не привязанные к именам книг, листов, конкретным диапазонам, столбцам, строкам, ячейкам
Универсальный инструмент - это для всех, а специальный делается по заказу. По заказам же я практически никогда не пишу.

Не выделять столбцы перед запуском макроса еще какой для меня вариант!
Откуда ж я мог знать про вариант "невыделения": я же писал, что не сильно искушенный юзер - защита эта нужна как раз от меня и мне подобных. А про макросы только вчера начал изучать информацию как и что делать и куда идти....
Спасибо громадное за уточнение! :D
Уже все протестировал - работает именно так как надо! :D
P.S. А с первым вариантом пока не смог разобраться: перебрал все варианты и ничего не получается..... :(
 
Ответить
Сообщение
А просто не выделять эти столбцы перед вызовом макроса защиты - для Вас не вариант?

Тогда, извините, это не ко мне, т.к. я всегда пишу УНИВЕРСАЛЬНЫЕ макросы, не привязанные к именам книг, листов, конкретным диапазонам, столбцам, строкам, ячейкам
Универсальный инструмент - это для всех, а специальный делается по заказу. По заказам же я практически никогда не пишу.

Не выделять столбцы перед запуском макроса еще какой для меня вариант!
Откуда ж я мог знать про вариант "невыделения": я же писал, что не сильно искушенный юзер - защита эта нужна как раз от меня и мне подобных. А про макросы только вчера начал изучать информацию как и что делать и куда идти....
Спасибо громадное за уточнение! :D
Уже все протестировал - работает именно так как надо! :D
P.S. А с первым вариантом пока не смог разобраться: перебрал все варианты и ничего не получается..... :(

Автор - Serge1400
Дата добавления - 02.07.2016 в 21:09
Alex_ST Дата: Суббота, 02.07.2016, 21:24 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
А с первым вариантом пока не смог разобраться
О каком варианте речь? В каком из постов топика описан?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
А с первым вариантом пока не смог разобраться
О каком варианте речь? В каком из постов топика описан?

Автор - Alex_ST
Дата добавления - 02.07.2016 в 21:24
Serge1400 Дата: Суббота, 02.07.2016, 21:43 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Alex_ST,
Я про тот в котором F5 надо жать и потом выбирать: все варианты перебрал и ничего. Я же говорю, что я чайник.
Так что редактирование защищенных ячеек для меня пока вопрос открытый


Сообщение отредактировал Serge1400 - Суббота, 02.07.2016, 22:24
 
Ответить
СообщениеAlex_ST,
Я про тот в котором F5 надо жать и потом выбирать: все варианты перебрал и ничего. Я же говорю, что я чайник.
Так что редактирование защищенных ячеек для меня пока вопрос открытый

Автор - Serge1400
Дата добавления - 02.07.2016 в 21:43
Alex_ST Дата: Суббота, 02.07.2016, 22:45 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Первый раз в жизни слышу про то, что имеются варианты нажатия клавиши F5 shock
Поверьте, каким бы пальцем , другой частью тела либо предметом Вы не нажали клавишу F5 на клавиатуре, когда активно окно Excel, реакция компьютера будет одинаковая :D
Она у Вас вообще есть на клавиатуре? Ну так откройте любую книгу Excel и нажмите её.
Далее я уже описывал
Выбираете то, что Вы хотите выделить (например, "Проверка данных"), потом нажимаете ОК.
Если в выделенном диапазоне есть ячейки с проверкой данных, то они выделятся.
Если таких ячеек нет, Excel ругнётся.

А как Вашей версии Excel'я добраться до пункта "Проверка данных" я, извините, не могу знать.
У меня, в 2003-ем это "Данные" → "Проверка... "
Откроется окно проверки вводимых значений

В нём выбираете в выпадающем списке "Тип данных": любое значение
Жмёте ОК и все Ваши проверки данных, заданные в выделенных ячейках, удаляются.
К стати, только сейчас заметил, что там есть ещё и кнопочка "Очистить все". Значит, ещё проще - тип данных можно не выбирать.
К сообщению приложен файл: 3045061.jpg (13.1 Kb) · 2868954.jpg (28.0 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Воскресенье, 03.07.2016, 13:14
 
Ответить
СообщениеПервый раз в жизни слышу про то, что имеются варианты нажатия клавиши F5 shock
Поверьте, каким бы пальцем , другой частью тела либо предметом Вы не нажали клавишу F5 на клавиатуре, когда активно окно Excel, реакция компьютера будет одинаковая :D
Она у Вас вообще есть на клавиатуре? Ну так откройте любую книгу Excel и нажмите её.
Далее я уже описывал
Выбираете то, что Вы хотите выделить (например, "Проверка данных"), потом нажимаете ОК.
Если в выделенном диапазоне есть ячейки с проверкой данных, то они выделятся.
Если таких ячеек нет, Excel ругнётся.

А как Вашей версии Excel'я добраться до пункта "Проверка данных" я, извините, не могу знать.
У меня, в 2003-ем это "Данные" → "Проверка... "
Откроется окно проверки вводимых значений

В нём выбираете в выпадающем списке "Тип данных": любое значение
Жмёте ОК и все Ваши проверки данных, заданные в выделенных ячейках, удаляются.
К стати, только сейчас заметил, что там есть ещё и кнопочка "Очистить все". Значит, ещё проще - тип данных можно не выбирать.

Автор - Alex_ST
Дата добавления - 02.07.2016 в 22:45
Serge1400 Дата: Суббота, 02.07.2016, 23:17 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Alex_ST,
В моем случае (exel10)для снятия вашей защиты в преварительно выделенных ячейках, оказалось достаточно, зайти в "данные", выбрать "проверка данных" и в появившемся окошке нажать "очистить все".
После этого любая из выделенных ячеек прекрасно редактируется. Лезешь в другие "неочищенные" ячейки - защита ругается!
Так что все очень даже расчудесно получается и я вооружен!
Еще раз спасибо за помощь и разъяснения! Самостоятельно я бы до этого никогда бы не допер. :D
 
Ответить
СообщениеAlex_ST,
В моем случае (exel10)для снятия вашей защиты в преварительно выделенных ячейках, оказалось достаточно, зайти в "данные", выбрать "проверка данных" и в появившемся окошке нажать "очистить все".
После этого любая из выделенных ячеек прекрасно редактируется. Лезешь в другие "неочищенные" ячейки - защита ругается!
Так что все очень даже расчудесно получается и я вооружен!
Еще раз спасибо за помощь и разъяснения! Самостоятельно я бы до этого никогда бы не допер. :D

Автор - Serge1400
Дата добавления - 02.07.2016 в 23:17
Alex_ST Дата: Воскресенье, 03.07.2016, 13:21 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
достаточно, зайти в "данные", выбрать "проверка данных" и в появившемся окошке нажать "очистить все"
а я разве не точно то же самое говорил?
"Данные" → "Проверка... " … Откроется окно проверки вводимых значений
В нём выбираете в выпадающем списке "Тип данных": любое значение
Жмёте ОК и все Ваши проверки данных, заданные в выделенных ячейках, удаляются.
… там есть ещё и кнопочка "Очистить все"



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
достаточно, зайти в "данные", выбрать "проверка данных" и в появившемся окошке нажать "очистить все"
а я разве не точно то же самое говорил?
"Данные" → "Проверка... " … Откроется окно проверки вводимых значений
В нём выбираете в выпадающем списке "Тип данных": любое значение
Жмёте ОК и все Ваши проверки данных, заданные в выделенных ячейках, удаляются.
… там есть ещё и кнопочка "Очистить все"

Автор - Alex_ST
Дата добавления - 03.07.2016 в 13:21
Serge1400 Дата: Воскресенье, 03.07.2016, 14:14 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Alex_ST,
Ну да - тоже самое написано. Делайте скидку на мою бестолковость в плане работы с Exel.
После того, как мне удалось записать несложный макрос для снятия с ячейки или группы ячеек этой защиты (спасибо за вышеупомянутые подсказки), получился полноценный и очень функциональный вариант против косоруких "дураков". Но при этом, таблицу без проблем можно растаскивать, удалять строчки, столбцы и т.д. А при необходимости за секунду снять макросом с нужной ячейки защиту и редактировать содержимое.
Как нынче говорят - большущий респект Alex_ST,!
Очень нарядная и полезная штука получилась в итоге по моему.


Сообщение отредактировал Serge1400 - Воскресенье, 03.07.2016, 18:26
 
Ответить
СообщениеAlex_ST,
Ну да - тоже самое написано. Делайте скидку на мою бестолковость в плане работы с Exel.
После того, как мне удалось записать несложный макрос для снятия с ячейки или группы ячеек этой защиты (спасибо за вышеупомянутые подсказки), получился полноценный и очень функциональный вариант против косоруких "дураков". Но при этом, таблицу без проблем можно растаскивать, удалять строчки, столбцы и т.д. А при необходимости за секунду снять макросом с нужной ячейки защиту и редактировать содержимое.
Как нынче говорят - большущий респект Alex_ST,!
Очень нарядная и полезная штука получилась в итоге по моему.

Автор - Serge1400
Дата добавления - 03.07.2016 в 14:14
Serge1400 Дата: Среда, 13.07.2016, 11:00 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемый Alex-ST!
Еще раз спасибо за этот замечательный макрос. На роботе уже неоднократно успели убедиться в его эффективности - пару раз спасал от возможных косяков в расчетах от невниматльных и криворуких.
Я извиняюсь за возможную назойливость, но решился еще раз вас побеспокоить.
Как писал выше, написал макрос рекордедером для снятия вашей защиты, но как он он кривовато работает - по ощущениям через раз. Выглядит он вот так

[vba]
Код
Sub Макрос1()
'
' Макрос1 Макрос
' доступ к редактированию
'
' Сочетание клавиш: Ctrl+я
'
    With Selection.Validation
       .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = "ОШИБКА!"
        .InputMessage = ""
        .ErrorMessage = "В ячейке формула!" & Chr(13) & "" & Chr(10) & "Ввод данных запрещён!"
        .ShowInput = True
        .ShowError = True
    End With
End Sub
[/vba]

Может в нем все таки что-то неправильно записалось?
С уважением,
Сергей


Сообщение отредактировал _Boroda_ - Среда, 13.07.2016, 11:08
 
Ответить
СообщениеУважаемый Alex-ST!
Еще раз спасибо за этот замечательный макрос. На роботе уже неоднократно успели убедиться в его эффективности - пару раз спасал от возможных косяков в расчетах от невниматльных и криворуких.
Я извиняюсь за возможную назойливость, но решился еще раз вас побеспокоить.
Как писал выше, написал макрос рекордедером для снятия вашей защиты, но как он он кривовато работает - по ощущениям через раз. Выглядит он вот так

[vba]
Код
Sub Макрос1()
'
' Макрос1 Макрос
' доступ к редактированию
'
' Сочетание клавиш: Ctrl+я
'
    With Selection.Validation
       .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = "ОШИБКА!"
        .InputMessage = ""
        .ErrorMessage = "В ячейке формула!" & Chr(13) & "" & Chr(10) & "Ввод данных запрещён!"
        .ShowInput = True
        .ShowError = True
    End With
End Sub
[/vba]

Может в нем все таки что-то неправильно записалось?
С уважением,
Сергей

Автор - Serge1400
Дата добавления - 13.07.2016 в 11:00
Alex_ST Дата: Среда, 13.07.2016, 18:04 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Надо ограничиться одним[vba]
Код
Selection.Validation.Delete
[/vba]
А то Вы сначала снимаете проверку, а потом её опять ставите :D
Когда мой макрос ставит защиту, то он специально сначала удаляет ту проверку, которая могла быть прописана в ячейках, а потом уже ставит "защитную" проверку.
Странно, что у Вас хоть через раз, но всё-таки снимает защиту. По идее вообще не должно.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 14.07.2016, 10:51
 
Ответить
СообщениеНадо ограничиться одним[vba]
Код
Selection.Validation.Delete
[/vba]
А то Вы сначала снимаете проверку, а потом её опять ставите :D
Когда мой макрос ставит защиту, то он специально сначала удаляет ту проверку, которая могла быть прописана в ячейках, а потом уже ставит "защитную" проверку.
Странно, что у Вас хоть через раз, но всё-таки снимает защиту. По идее вообще не должно.

Автор - Alex_ST
Дата добавления - 13.07.2016 в 18:04
Мир MS Excel » Вопросы и решения » Готовые решения » Макрос "Formula_Protect" (Не мешающие работе методы защиты формул листа)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!