Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2010, 07:19   #41
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Когда-то делал подобную вещь. Посмотрите здесь.
Пароль на VBA проект - "1234". При защищенном листе доступна работа с группами и автофильтром.
Там много лишнего. Уберите то, что Вам не требуется.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.04.2010, 11:29   #42
vlad-minsk
 
Регистрация: 20.04.2010
Сообщений: 9
По умолчанию

Добрый день! Большое спасибо! Буду разбириться.
vlad-minsk вне форума Ответить с цитированием
Старый 28.04.2010, 10:59   #43
Poza
Новичок
Джуниор
 
Регистрация: 21.04.2010
Сообщений: 1
По умолчанию

Добрый день, у меня проблемка при разгруппировке открывается скрытый столбец, подскажите пожайлуста как это можно устранить? Большое спасибо!
Poza вне форума Ответить с цитированием
Старый 09.08.2010, 14:08   #44
s8259
Пользователь
 
Регистрация: 27.07.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Не "обркзанные", а те, которые прописаны в опциях и заданы параметрами.
В любом случае, когда защиту листа устанавливает макрос, нужно во-первых, прописать все, что Вам требуется, во-вторых, это не сохраняется при закрытии файла. Чтобы решить все Ваши проблемы, нужно:
1. Включите макрорекордер, установите защиту листа вручную, с выбором всех необходимых опций (выделение, копирование, форматирование и т.п.), затем, отключите запись макроса, войдите в VBE и посмотрите полученный код. Для того, чтобы макросы, в отличии от пользователей, могли вносить изменения на защищенном листе не снимая и вновь устанавливая каждый раз защиту, добавьте опцию UserInterfaceOnly:=True. Этот код и используйте в макросе, устанавливающем защиту.
2. Многие опции защиты, установленные макросом, не сохраняются при сохранении файла. Поэтому, по событию открытия книги нужно снять сохраненную защиту и установить требуемую. Именно так и сделано в моем примере выше. При открытии файла запускаем макрос "Защитить", который делает все, что нужно.
Код:
Private Sub Workbook_Open(): Защитить: End Sub
Этот код должен быть расположен в модуле "Эта книга", а макрос "Защитить" - в общем программном модуле.
Добрый день SAS888!
Сделал все по вышеописанному алгоритму, при защите ячеек по выставленным условиям (разрешение выделения незаблокированных ячеек, работы автофильтра и изменение объектов) макрорекордер (Excel 2007) прописал код, который был перенесен в программный модуль, а также код запуска при открытии книги. Но при открытии файла, как и ранее, доступны заблокированные ячейки (с формулами). Может быть подскажете, в чем дело? Файл прилагаю.
Вложения
Тип файла: rar Качество доставки покупатели 2010.rar (414.4 Кб, 31 просмотров)
s8259 вне форума Ответить с цитированием
Старый 18.08.2010, 08:47   #45
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

У Вас в модуле "Эта книга" присутствуют 2 макроса с одинаковым именем "Private Sub Workbook_Open". Это не допустимо. Макрос "Защитить", который Вы, судя по всему, хотите выполнять при открытии, на мой взгляд не имеет смысла.
Пример исправленного файла во вложении. Что сделано не так, как Вам требуется?
Вложения
Тип файла: rar Качество доставки покупатели 2010.rar (420.5 Кб, 49 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 18.08.2010 в 09:00.
SAS888 вне форума Ответить с цитированием
Старый 21.03.2011, 10:52   #46
madex
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 61
По умолчанию

Имеется макрос. Как мне снять защиту во время выполнения макроса т.е.

Цитата:
Sub SaveReestr()
Msg = "Скопировать в реестр?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then

Else
Снять защиту листа Реестр
Dim i As Integer, r As Object, p As Object
Set r = Workbooks("Товарный чек1.xls").Sheets("Реестр")
Set p = Workbooks("Товарный чек1.xls").Sheets("Чек")


For i = 2 To r.[a1].CurrentRegion.Rows.Count
If r.Cells(i, 1) = p.Cells(1, 2) Then Exit For
Next i

r.Cells(i, 1) = p.Cells(5, 2)
r.Cells(i, 2) = p.Cells(6, 2)
r.Cells(i, 3) = p.Cells(7, 2)
r.Cells(i, 4) = p.Cells(15, 5)
r.Cells(i, 5) = p.Cells(13, 5)
r.Cells(i, 6) = p.Cells(5, 3)
r.Cells(i, 7) = p.Cells(10, 1)
r.Cells(i, 8) = p.Cells(11, 1)
r.Cells(i, 9) = p.Cells(12, 1)
MsgBox "Сделано!"
Вернуть защиту листа реестр
End If
End Sub
madex вне форума Ответить с цитированием
Старый 21.03.2011, 11:35   #47
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Снять:
Код:
r.Unprotect "Пароль"
Вернуть защиту:
Код:
r.Protect "Пароль" 'через запятую параметры защиты
Еще посмотрите эту статью. Может больше подойдет.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как заставить работать макрос при защите листа qwertyuzer Microsoft Office Excel 4 11.02.2009 15:20
Формирование листа при множественом выборе файлов Руслантус Общие вопросы C/C++ 2 09.08.2008 23:16
Добрый день и снова вопрос по защите) Wasily Microsoft Office Excel 17 18.06.2008 10:26
При закрытии листа, стираются данные Romuald Microsoft Office Excel 2 20.12.2007 13:24
Удалить строку листа Excel при выполнении условия Gennady Microsoft Office Excel 14 18.12.2007 13:54