есть файл с макросом на листе отформатировал ячейки — разрешив в них вносить данные при защищенном листе защитил лист
Макрос выдает ошибку. Поискал в инете решения — нашел пару. Не помогли. В чем я ошибаюсь.
Private Sub Workbook_Open()
Dim Sh As Worksheet, i As Integer For i = 1 To Sheets.Count With Sheets(i) .Unprotect Password (123) .Protect Scenarios:=True, UserInterfaceOnly:=True End With Next
Все равно выдает ошибку. Помогите разобраться. У меня в файле все листы будут защищены, с отдельных ячеек на листах будут сняты защиты. Макросы будут идентичны на каждом листе
есть файл с макросом на листе отформатировал ячейки — разрешив в них вносить данные при защищенном листе защитил лист
Макрос выдает ошибку. Поискал в инете решения — нашел пару. Не помогли. В чем я ошибаюсь.
Private Sub Workbook_Open()
Dim Sh As Worksheet, i As Integer For i = 1 To Sheets.Count With Sheets(i) .Unprotect Password (123) .Protect Scenarios:=True, UserInterfaceOnly:=True End With Next
Все равно выдает ошибку. Помогите разобраться. У меня в файле все листы будут защищены, с отдельных ячеек на листах будут сняты защиты. Макросы будут идентичны на каждом листе mitox
Сообщение есть файл с макросом на листе отформатировал ячейки — разрешив в них вносить данные при защищенном листе защитил лист
Макрос выдает ошибку. Поискал в инете решения — нашел пару. Не помогли. В чем я ошибаюсь.
Private Sub Workbook_Open()
Dim Sh As Worksheet, i As Integer For i = 1 To Sheets.Count With Sheets(i) .Unprotect Password (123) .Protect Scenarios:=True, UserInterfaceOnly:=True End With Next
Все равно выдает ошибку. Помогите разобраться. У меня в файле все листы будут защищены, с отдельных ячеек на листах будут сняты защиты. Макросы будут идентичны на каждом листе Автор — mitox Дата добавления — 16.03.2018 в 13:02
Источник
Excel не работает макрос при защите листа
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub tt() Me.Protect Password:=PWD, UserInterfaceOnly:=1, DrawingObjects:=1, Contents:=1, Scenarios:=1, _ AllowFormattingCells:=1, AllowInsertingRows:=0, AllowDeletingRows:=0, AllowFiltering:=1, AllowFormattingRows:=1 End Sub
Private Sub Worksheet_activate() tt End Sub
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub tt() Me.Protect Password:=PWD, UserInterfaceOnly:=1, DrawingObjects:=1, Contents:=1, Scenarios:=1, _ AllowFormattingCells:=1, AllowInsertingRows:=0, AllowDeletingRows:=0, AllowFiltering:=1, AllowFormattingRows:=1 End Sub
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub tt() Me.Protect Password:=PWD, UserInterfaceOnly:=1, DrawingObjects:=1, Contents:=1, Scenarios:=1, _ AllowFormattingCells:=1, AllowInsertingRows:=0, AllowDeletingRows:=0, AllowFiltering:=1, AllowFormattingRows:=1 End Sub
Private Sub Worksheet_activate() tt End Sub
Источник
Excel не работает макрос при защите листа
Модератор форума: китин
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Не работает макрос на защищенном листе. (Не работает макрос на защищенном листе.)
Не работает макрос на защищенном листе.
АННА-ЕАО
Дата: Понедельник, 03.12.2012, 16:37 | Сообщение № 1
Serge_007
Дата: Понедельник, 03.12.2012, 16:52 | Сообщение № 2
KuklP
Дата: Понедельник, 03.12.2012, 21:23 | Сообщение № 3
[/vba] Пароль будет «123»
А дальше попробуйте: [vba]
[/vba] Пароль будет «123»
А дальше попробуйте: [vba]
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
[/vba] Пароль будет «123»
А дальше попробуйте: [vba]
Serge_007
Дата: Понедельник, 03.12.2012, 22:25 | Сообщение № 4
KuklP
Дата: Понедельник, 03.12.2012, 22:32 | Сообщение № 5
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Ответить
Serge_007
Дата: Понедельник, 03.12.2012, 22:36 | Сообщение № 6
Нет, путаю Для меня все фильтры — это автофильтры
Я имел ввиду без критериев на листе
Нет, путаю Для меня все фильтры — это автофильтры
Я имел ввиду без критериев на листе Serge_007
Нет, путаю Для меня все фильтры — это автофильтры
Я имел ввиду без критериев на листе Автор — Serge_007 Дата добавления — 03.12.2012 в 22:36
KuklP
Дата: Понедельник, 03.12.2012, 22:38 | Сообщение № 7
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Ответить
АННА-ЕАО
Дата: Вторник, 04.12.2012, 08:47 | Сообщение № 8
strong74rus
Дата: Четверг, 27.11.2014, 11:34 | Сообщение № 9
Добрый день! У меня аналогичная проблема не работает маркрос при защите листа помогите исправить ошибку
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Column = 4) And (Target.Row >= 3) And (Target.Row
Добрый день! У меня аналогичная проблема не работает маркрос при защите листа помогите исправить ошибку
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Column = 4) And (Target.Row >= 3) And (Target.Row strong74rus
Сообщение Добрый день! У меня аналогичная проблема не работает маркрос при защите листа помогите исправить ошибку
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Источник
Работа макроса на защищённом листе
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вложения
Удобный поиск с добавлением.7z (28.6 Кб, 15 просмотров)
Работа макроса на защищенном листе Доброго дня. Помогите пожалуйста доработать макрос, чтобы он не ругался при работе на защищенном.
Работа макроса на скрытом не активном листе Добрый день, уважаемые. Такая проблема. Скажем есть макрос, который удаляет теги из ячеек. Sub.
Не работает макрос на защищенном листе Помогите сделать так чтобы макрос по датам срабатывал при защищенном листе.
Добавление строк на защищенном листе программно Привет! Ситуация такая: в Excel есть защищаемая ячейка с формулой СУММ и под ней ячейки не.
spasen1973, ну и в каком месте ваши защищённые листы, попробовал вводить данные — вводятся. Да это не главное. Где ваш поиск, который не работает или вы считаете, что мы должны разобрать ваш код по косточкам, восхитится им и сообразить где этот поиск?
Добавлено через 10 минут и интересно, почему ваш выпадающий фруктовый список выпадает на листе городов, а на листе с фруктами (Списки) не выпадает?
Решение
я там переделывал страницы у себя, посмотрите мой Лист1 соответствует вашему?
Добавлено через 11 минут spasen1973, ещё можно выводить вашу форму только на существующих значениях столбца и на первом пустом внизу столбца, чтобы не было реакции на любую пустую ячейку столбца и ваши категории будут вводиться подряд без пустых в средине. Тогда это будет так для лист1
Добавлено через 24 минуты в коде кнопки закрыть тоже лучше восстановить защиту листа. Т.е на всех кнопках, из которых возможен выход из формы.
Добавлено через 42 минуты проверил в кнопае закрыть восстановление защиты можно не ставить, всё равно идет закрытие через QueryClose
Источник
Правильная защита макросом
В большинстве случаев защита макросом, которую я встречаю во множестве проектов, выглядит следующим образом:
То есть автор файла вынужден ставить защиту от шаловливых ручек пользователей, но чтобы его макрос мог выполнить необходимые действия, ему приходится временно снимать ее и затем включать снова. Такая техника работает, но далека от совершенства. Во-первых, это неудобно и требует введения подобных конструкций в каждый ваш макрос. Во-вторых, если выполнение макроса прервется с ошибкой, то лист останется незащищенным.
Есть гораздо более легкий и красивый способ решить задачу.
Нажмите Alt+F11, чтобы попасть в редактор Visual Basic. Затем найдите в левом верхнем углу в окне Project Explorer (если его не видно, то нажмите Ctrl+R) модуль ЭтаКнига(ThisWorkbook) и откройте двойным щелчком:
Скопируйте туда этот код:
Эта процедура будет автоматически запускаться при открытии файла и ставить защиту на заданные листы книги. Причем параметр UserInterfaceOnly, который мы дополнительно ввели, указывает Excel, что защита не должна распространяться на действия выполняемые макросом, а только на операции пользователя. Для второго листа все еще веселее — строка с параметром EnableOutlining разрешает пользоваться группировкой (символы плюс-минус для сворачивания-разворачивания строк и столбцов) на защищенном листе.
Всего три строчки кода, зато как удобно!
Ссылки по теме
Вот из-за этой строчки: .EnableOutlining = True ‘группировка строк/столбцов (символы структуры)
. и чтобы, если пользователь сознательно разблокировал лист, он автоматически блокировался при повторном открытии.
Private Sub Workbook_Open() ‘включаем защиту первого листа для пользователя, но не макроса Worksheets(«Лист1″).Protect Password:=»123», UserInterfaceOnly:= True .
Добрый день, подскажите пожалуйста куда в макросе это нужно вставить? Что бы работал автофильтр? Спасибо.
Пользуясь случаем, хочу выразить свое восхищение автору сайта! Мало того, что я нашел здесь несколько приемов над которыми ломал голову уже несколько месяцев, так они еще и настолько просто и изящно написаны, что остается только удивляться.
Хочу спросить. здесь не так много уделено внимания защите от изменения, что удивительно, поскольку я сталкиваюсь все время с тем, что незащищенные программки очень быстро ломают любопытствующие. Поэтому хочу спросить есть ли еще какие нибудь приемы/советы по защите. А второе: какую лучше процедуру в VBA прописать и на какое событие, проверяющее листы на то, защищены ли они еще паролем. Т.к. пароли легко взламываются и защита с листов снимается. Спасибо
Ясно, спасибо
Обход действия макроса я думал решить тем, что листы с данными остаются в veryhidden и открываться будут только по запуску макросов, т.е. без макросов сам файл не будет иметь смысла, он ничего считать не будет. Ну да, если человек знает как обойти действие макросов, от него уже спасу нет . Но вот такую защиту «от дурака». Что нибудь можно придумать стоящее? Просто хуже всего, что ломают программу именно люди, которые не знают толком, ни что такое макросы, ни как что работает. А защиту взламывают с помощью сторонних программ, т.е. особо не разбираясь в Excel. Большое спасибо за ответы
Форматирование на защищенном листе работает, а вот фильтрация нет! Подскажите в чем может быть проблема? вот код
Фильтрация задается заранее. Я немного неверно описал проблему — при нажатии на фильтр в ячейке появляется возможность отсортировать ячейки — не работает именно сортировка ячеек, а сам фильтр работает нормально. Прошу прощенья за неточность в вопросе!
Да, конечно. Но в двух словах не ответить — достаточно сложная штука будет. Нужно на входе в файл запрашивать имя и пароль, чтобы понять — кто его открывает, пользователь или руководитель? А потом макросом снимать защиту или полностью (для руководителя) или выборочно (для пользователей).
Спасибо большое автору за полезный макрос. Очень пригодился!
Подскажите, пожалуйста, что необходимо дописать в макрос, чтобы защищенные ячейки невозможно было выделить?
Николай! Реализуема ли средствами excel такая задача: есть несколько ячеек в строке куда вводятся данные «пользователями» и последняя ячейка в строке которую заполняет «руководителем». После того как руководитель ввел сою цифру остальные ячейки в строке должны стать недоступными для редактирования?
Здравствуйте Николай. Спасибо за Ваш сайт, давно уже пользуюсь, узнал много нового. По освещенной теме возникло два вопроса.
1. Раньше я защищал макросом лист именно так, как описано в начале статьи. Есть таблица сотрудников, заполняется форма и макросом копируется строка значений в таблицу (по алгоритму снять защиту-скопировать-вставить значения-поставить защиту). Почему-то макрос работает четко через раз. Один раз проходит, второй раз выдает ошибку при вставке значений. Если убрать Protect — Unprotect, то все работает. При этом если проверить лист на защищенность, то защита снята. Что бы это могло быть?
2. В связи с вышесказанным пришлось искать другой вариант защиты листа, нашел метод из этой статьи. Сразу не заработало, т.к. я по привычке переименовал макрос по своему. Правильно ли я понимаю, что название должно быть жестко Workbook_Open и переименовывать его нельзя?
Отличное решение, спасибо автору! Но у меня есть один нюанс. Как разрешить добавлять и удалять строки? AllowInsertingRows:=True, AllowDeletingRows:=True — не помогает, ругается «эта ячейка находится на защищённом листе»
Я далек от этой темы, и буду очень благодарен если мне поможете.
День Добрый Вопрос интересный — стоит задача — Чтобы сотрудники не вносили/редактировали данные задним числом — сделать так чтобы АВТОМАТИЧЕСКИ включалась БЛОКИРОВКА редактирования записей которые внесли вчера на СЛЕДУЮЩИЙ ДЕНЬ!! и можно вносить новые записи — Но всё таки была возможность у админа снять блокировку прошлых записей и отредактировать при необходимости.
видел такой способ для одной ячейки — вручную — Поставьте курсор на ячейку с датой и выберите в меню пункт «Данные». — Нажмите на кнопку «Проверка данных». Появится таблица. — В выпадающем списке «Тип данных» выбираем «Другой». — В графе «Формула» пишем =А2=СЕГОДНЯ() — Убираем галочку с «Игнорировать пустые ячейки» (картинка 2). — Нажимаем кнопку «ОК». Теперь, если человек захочет ввести другую дату, появится предупреждающая надпись (картинка 3). — Также можно запретить изменять цифры в столбце «Кол-во». Ставим курсор на ячейку с количеством и повторяем алгоритм действий.
может он сработает для всей колонки ДАТА и Количество? И остаётся вопрос пароля на установку блокировки?
У меня в файле много вкладок, которые надо блокировать, при передаче пользователям. И так как блокировать каждый лист долго, я придумала макросы по блокировке и разблокировке всех листов. Вот такие
Sub blok() Worksheets(«ЗП_и_пр»;.Protect Password:=»ufcytncdtn» . End Sub
Sub razblok() Worksheets(«ЗП_и_пр»;.Unprotect Password:=»ufcytncdtn» . End Sub
Но вот проблема, при таком методе высоту строк пользователь не может регулировать.
Думаю есть методы для изменения высоты строк пользователем при заблокированном листе.
Кто может — помогите)))
Добрый День! Подскажите как обойти ошибку? За ранее спасибо! , после защиты макросом, я пытаюсь на др листах прописать текст в ячейках, соответственно на первом листе вновь вводимые данные должны отобразиться, вместо этого — возникает сл ошибка:
в Первом листе «сводном» с именем «Заявки» у меня записан вот такой код:
взятый код с вашего сайта и записанный в модуль ЭтаКнига (ThisWorkbook)
Можно ли защитить не листы, а книгу чтоб потом макросом можно было скрывать листы?
не работает с книгой UserInterfaceOnly:=True,
Реализовал защиту листов. Все работает норм. При открытии книги все листы блокируются через макрос с параметром UserInterfaceOnly:=True. Все отлично. Данный параметр не дает на листе работать пользователю, но макросы работают нормально, например логирование сохранений файла работает.
Проблема заключается в следующем. При попытке собрать данные со всех листов на другом вылазит ошибка, что данные находятся на защищенном листе, и его изменение не возможно. Если защиту снимаю, то макрос отрабатывает нормально. Может это из-за того, что данные на листе организованы через умные таблицы?
Добрый день! подскажите плиз как правильно сделать, чтобы в защитном листе при открытии файла все время работала и группировка, и можно было добавлять примечания к ячейкам) Для группировки добавила код:
Для установки «примечаний» установила галочку на «изменение объектов» в защите листа, но после открытия заново файла примечание не работает(((, а с группировкой все ок. Форматирование, фильтрация и сортировка не нужна. Помогите плиз