Упрятывание данных в Excel

Программирование на Visual Basic for Applications
Brudda
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 21.02.2005 (Пн) 14:47
Откуда: Рига

Упрятывание данных в Excel

Сообщение Brudda » 23.02.2005 (Ср) 15:50

Привет, спасибо что заглянул.
Задача следующая: есть специализированный калькулятор (на форме), который для вычислений использует данные, записанные в Экселе. Есть ли возможность спрятать эти данные, что бы простой пользоваатель не имел к ним никакого доступа (вклюая просмотр). Прстой или запароленый Hide Sheet не подходит, поскольку пользователи пошли ушлые - находят в и-нете ломалки, ломают пароли снимают Hide и т.д.
Может есть идеи какие-нибудь?
С почтением,
Brudda

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 23.02.2005 (Ср) 17:29

Можно шифровать, только я не совсем понимяю зачем :?

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Сообщение Starik » 23.02.2005 (Ср) 21:33

Можно все данные записать в модуль.
В этом модуле прописать скрытие панели инструментов, да много чего, на что фантазии хватит. При запуски XL данные записываются в нужные ячейки, которые можно замаскировать любым способом, прописанным в модуле.
При запуске XL с отключенными макросами - лист будет чистым.
Только возникнет вопрос КАК защитить модуль?
Снова приходим к паролю или шифрованию, ну не знаю... .
Я делаю именно так, потому что были случаи, когда пользователь несколько раз уничтожал формулы, данные и т.д.
У нас нет людей знающих программирование, поэтому мне проще, поставил пароль на проект, и сплю спокойно.

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Сообщение Терминатор » 24.02.2005 (Чт) 11:09

Не притендую на эксклюзив, но до сих пор многочисленные пользователи пока-что никуда не залезли и ничего не просмотрели. Хотя конечно, всем известно, что даже в VB6 трудно сделать взлом только начинающему пользователю, спец везде сможет пройти, на то он и спец. Что уж говорить про VBA.
К примеру продукция 1С. Как бы они не старались защитить свой продукт, кряков навалом. Знаю их проблему не по-наслышке, сидим с ними в одном здании.
В Excel я делаю так: Нужный лист скрываю с помощью кода применяя свойство xlSheetVeryHidden, как известно, после этого лист уже отобразить стандартными способами нельзя, только с помощью кода. После ставлю пароль в VBA Project Properties, защищаю книгу.
Что мы имеем: Лист отобразить никак нельзя, чтобы его отобразить необходимо попасть к свойствам листа, что уже невозможно. (При зашите книги, если помните, появляется сообщение что просмотр и редактирование макросов будет невозможно, даже если Вы снимите защиту, коды всеравно будут недоступны)
Но главное ради чего я пишу это, это установка паролей.
Наверняка кто-то тоже знает, как можно написать пароль для Excel, который обычные программы, которые висят в сети, не могут вскрыть их. Я уже пробовал, не вскрывают. Очень хотелось бы с кем-то потягаться ради спортивного интерса, кто сможет вскрыть пароль установленный мной на Excel. Пишите в приват.

Кстати в последнем номера Хакера, есть интересный вариант устаноки пароля и имени пользователя для VB6. Так как я не спец по VB, комментировать не смогу, но кого интересут почитайте.

P.S. Как я уже писал в самом начале, настоящему спецу всё по-плечу, вот мне как раз и хочется потягаться с более сильным.
Hasta la vista, baby!

Brudda
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 21.02.2005 (Пн) 14:47
Откуда: Рига

Сообщение Brudda » 24.02.2005 (Чт) 14:00

Спасибо.
Попробовал последний вариант - работает, понравилось. Я использовал newSheet.Visible = xlVeryHidden
Думаю, что это приципиально ничего не меняет.
Еще раз спасибо.
С почтением,
Brudda

gacol
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2004 (Вт) 13:13
Откуда: Нов. Уренгой

Сообщение gacol » 25.02.2005 (Пт) 8:40

При закрытом проекте все равно можно написать в Imiddiate Window
[Sheet].Visible = True и станица появится.

А xlVeryHidden мне понралилось позволяет работать с иформацией на скрытых листах.

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Сообщение Терминатор » 25.02.2005 (Пт) 11:36

В Imiddiate Window говорите, [Sheet].Visible = True, что-то я не заметил, по крайней мере у себя отображаемого листа. На всякий случай напомню, что я говорил о том что ставлю пароль.
Приведу полный пример:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Worksheets(3).Visible = xlSheetVeryHidden
End Sub

Private Sub Workbook_Open()
Application.Worksheets(3).Visible = xlSheetVeryHidden
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$IV$65536" Then

Dim ps As String
ps = InputBox("Введите пароль")
If ps <> "Детский сад" Then ThisWorkbook.Close
If ps = "Детский сад" Then ps = InputBox("Введите пин код")
If ps <> "не ходит в casino" Then Exit Sub
If ps = "не ходит в casino" Then
Application.Worksheets(3).Visible = True
End If

End If

End Sub

На проекте стоит пароль и на книге тоже.

Приведите пожалуйста свой вариант в полном виде, чтоб я смог воспользоваться им и миновать ввод своих паролей.
(По-поводу других вариантов ввода паролей я пока молчу, до тех пор пока не появиться желающий вскрыть их. Со своей стороны обещаю что его длина не будет превышать 8 символов.)
Hasta la vista, baby!

gacol
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2004 (Вт) 13:13
Откуда: Нов. Уренгой

Сообщение gacol » 25.02.2005 (Пт) 13:29

Да при защищенной книге нельзя раскрыть! Это хорошо!
Я только закрыл проект, а книгу закрыть забыл - каюсь.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList