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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.01.2007, 22:02   #1
asale
Форумчанин
 
Регистрация: 09.01.2007
Сообщений: 108
По умолчанию Просмотр листа с использование пароля

Добрый день.
Есть файл, в нем много листов. Возможно, чтобы при нажатии на определенный лист система запрашивала пароль и только после правильного ввода отображала содержимое листа, при непрвавильном пароле содержимое не отображалось.
Спасибо.
asale вне форума
Старый 16.01.2007, 14:52   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Можно использовать, например, событие рабочего листа Worksheet_Activate() для каждого рабочего листа (небольшой пример можно скачать здесь) или аналогичное событие рабочей книги Workbook_SheetActivate(ByVal Sh As Object)
Но здесь есть свои нюансы: Во-первых, при активации листа будет видно его содержимое, конечно с этим можно бороться, если, например, свернуть окно ActiveWindow.WindowState = xlMinimized или скрыть приложение Application.Visible = False, но в течении небольшого промежутка времени - содержимое всё равно будет отображаться. Во-вторых, при открытии или активации рабочей книги - не возникает активации листа, т.е. будет виден весь лист. Здесь также можно прибегнуть к свёртыванию/скрытию, или перед закрытием и деактивацией книги выделять какой-нибудь "нейтральный" лист, типа оглавления, или даже использовать почти забытые свойства OnSheetActivate/OnSheetDeactivate, но можно поступить по другому, а именно, изначально скрыть все листы, кроме одного (как это было сделано в Вашем прошлом топике), и по мере необходимости отображать нестандартное диалоговое окно, где можно будет выбрать нужный лист и после проверки правильности ввода пароля, отображать выбранный лист. Если такой вариант интересен, то можно создать небольшой пример.
pashulka вне форума
Старый 16.01.2007, 21:28   #3
asale
Форумчанин
 
Регистрация: 09.01.2007
Сообщений: 108
По умолчанию

Добрый день, Pashulka.
Вы мне опять очень могли. Предложенного варианта вполне достаточно. Только скажите, пожалуйста, а какой пароль следует вводить для просмотра листа?
Спасибо.
asale вне форума
Старый 17.01.2007, 02:07   #4
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Asale, Если речь идёт о опубликованном примере, то там используется пароль Dara. Однако, в этом примере при проверке правильности пароля - не учитывается регистр, т.е. допускается ввод DARA, или DarA. Если сие недопустимо, то уберите или закомментируйте инструкцию Option Compare Text. Да, и неплохо бы поставить пароль на VBProject, это "защитит" нужный пароль от праздношатающихся граждан.

P.S. Если листов действительно много, то можно воспользоваться событием рабочей книги Workbook_SheetActivate(ByVal Sh As Object) которое нужно расположить в модуле ThisWorkbook(ЭтаКнига)
В этом случае, Вам не придётся прописывать событие Worksheet_Activate() в каждом рабочем листе, но необходимо будет проверять - какой именно лист был активирован. Для этого можно воспользоваться об'ектом Sh (Sh.Name, Sh.CodeName) но и здесь есть свои нюансы, например, при использовании свойства Name желательно помнить, что лист может быть переименован (с этим можно бороться, если установить защиту книги: Сервис-Защита-Защитить книгу-Структура- ...) А при использовании свойства CodeName нужно помнить, что не все листы имеют это свойство, например, листы диалога (с этим можно бороться, если проверять тип листа используя, например, VB функцию TypeName)
pashulka вне форума
Старый 17.01.2007, 07:44   #5
asale
Форумчанин
 
Регистрация: 09.01.2007
Сообщений: 108
По умолчанию

Спасибо.
Очень подробная инструкция.
СПАСИБО.
asale вне форума
Старый 17.01.2007, 23:10   #6
asale
Форумчанин
 
Регистрация: 09.01.2007
Сообщений: 108
По умолчанию

Только один ньанс я нашел в данной программе.
Человек при запуске может нажать - "отключить макросы" и после этого он увидит защищаемый лист.
Это можно обойти как-нибудь?
asale вне форума
Старый 18.01.2007, 06:08   #7
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

На самом деле этот пример был создан для демонстрации ввода пароля, а активация листа и скрытие приложения использованы там только для красоты. Что касается отключения макросов и связанного с этим безобразием, то один вариант уже был предложен в конце второго сообщения, второй же вариант заключается в том, что начиная с MS Excel 2000 Вы можете подписать свой проект цифровой подписью. В этом случае, даже при высоком уровне безопасности, Ваши макросы будут выполняться, а при открытии книги не будет появляться диалоговое окно с предпреждением. Если этот вариант интересен, то более подробную информацию Вы сможете получить в офисной справке (см. ключевые слова цифровой сертификат, цифровая подпись)
pashulka вне форума
Старый 26.01.2007, 21:10   #8
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

да а как заполучить этот сертификат ... это было бы круто ..
Noor вне форума
Старый 26.01.2007, 22:30   #9
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Эти сертификаты делятся на две части : официальные, т.е. зарегистрированные и естественно платные, и собственные, т.е. созданные Вами с использованием файла SELFCERF.EXE (который должен наличествовать на машине, если при установке офиса Вы выбрали опцию установить цифровой сертификат) И для личного использования вполне подойдёт второй вариант.

P.S. Если при запуске вышеупомянутого файла ничего не происходит, то скорее всего причина заключается в версии - MS Office 2000 Rus. В этом случае, можно просто поискать этот файл на сайте корпорации Microsoft.
pashulka вне форума
Старый 27.01.2007, 18:28   #10
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

у меня все это стоит , я не пойму как подписать ....
Запускаю программу а она отображается в самом минимальном размере, с одной кнопкой [Х] закрыть

Последний раз редактировалось Noor; 27.01.2007 в 18:31.
Noor вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взлом пароля Windows mager Безопасность, Шифрование 25 07.03.2009 22:22
hook - перехват пароля dimonbest Общие вопросы Delphi 4 15.05.2008 14:24
подбор пароля kixaka Помощь студентам 4 19.04.2008 08:45
Считывание пароля Terran Общие вопросы Delphi 1 22.03.2008 20:09
Как убрать маскировку пароля без dll?? techner Win Api 4 20.04.2007 20:10