Страницы: 1
RSS
Пароль на эксель на время
 
Здравствуйте. Возможно ли поставить пароль на екскль на время, гдето-то на 2-3 дня, а потом чтоб он не открывался?????? :D  
 
Судя по вопросам в Ваших темах, коммерческий продукт хотите защитить? ;)  
Согласие есть продукт при полном непротивлении сторон
 
Sanja, оооо да 8)  
 
Oleg20, пароль на файлах Эксель ломается относительно не хитрым способом, достаточно погуглить вопрос минут 5-10. Вы уверены, что этого для вашей цели будет достаточно?
Вот горшок пустой, он предмет простой...
 
PooHkrd,да будет достаточно.
 
Цитата
Oleg20 написал:
поставить пароль на екскль
Пароль на само приложение? Может на файл (книгу)?
 
Многие  озадачивались подобными вещами, т.к. разрабатывали суперкрутые и сверхсложные серьезные проекты... Позже, видимо, начинают ерундой занимться, т.к. защита разработок в основном на уровне "от кривых ручек, чтобы не поломали"
Мысль понятна? :)
 
Здравствуйте всем! Просто мысли в слух, но вдруг. Я больше формулист, а не макросер, но вы, гуру макросов, разовьете мою мысль. Можно же написать макрос работающий по расписанию, т.е. файл работает и ничего не предвещает беды, но с определенной даты каждый раз при открытии файла срабатывал бы макрос и запрашивал пароль, если пользователь не вводит пароль, а он его естественно не знает, то файл просто закрывается?
 
Доброе время суток
Цитата
AnnaAnna написал:
но с определенной даты каждый раз при открытии файла срабатывал бы макрос и запрашивал пароль
можно, и уже написаны.
 
Цитата
AnnaAnna написал: но с определенной даты каждый раз при открытии файла срабатывал бы макрос и запрашивал пароль
Для открытия такого файла достаточно просто отключить макросы
Согласие есть продукт при полном непротивлении сторон
 
Спасибо ответившим, буду копать дальше. В смысле искать такой готовый макрос.
Sanja, меня это устраивает, отключатся же все макросы в файле?
 
AnnaAnna, Вам говорят про то, что последовательно отключается защита и за очень короткий срок снимается  Ваша блокировка, делая ваши труды по защите бессмысленными.  
По вопросам из тем форума, личку не читаю.
 
AnnaAnna, вот Вам пара ссылок - изучайте:
Как запустить файл с включенными макросами?
Как удалить книгу из самой себя

Все это вместе может более-менее защитить от не совсем продвинутых пользователей. Но как уже писалось выше - нет такой защиты в VBA, которая бы не ломалась. Да и в принципе(даже не в VBA). Поэтому если нужен защищенный коммерческий продукт, то надо исходить из принципа: затраты на защиту не должны превышать 20% усилий, потраченных на создание проекта. Ну и частые обновления продукта с постоянным добавлением новых "фишек" тоже является некоей защитой(как минимум актуальной версии).  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо, буду изучать.
 
Добрый день.
В продолжении этой темы, нужна помощь для установки пароля на книгу при наступлении определенной даты. Я уже где то код скопировал, вот он, но там что то с датой не клеится, пароль просится в любую дату и в любом формате даты.. Help me! Sos! Mayday! Спасибо заранее за ответы только без пословиц и оговорок, жду по сути исправление в коде:
Код
Private Sub Workbook_Open()
Dim i&, n&, P As Variant
Application.ScreenUpdating = False
n = 2
If Date = "05.05.2014" Then
For i = 1 To Sheets.Count
    Sheets(i).Activate
    Sheets(i).Protect "1234"
Next
End If
1:
P = InputBox("Время использования книги истекло, для продолжения введите пароль", "ВВОД ПАРОЛЯ")
If P = 1234 Then
For i = 1 To Sheets.Count
    Sheets(i).Activate
    Sheets(i).Unprotect "1234"
Next
Else
  If n = 0 Then
  Application.DisplayAlerts = False
  ThisWorkbook.Close
  Application.DisplayAlerts = True
  Else
  MsgBox "Пароль не верный, у вас еще " & n & " попытки"
  n = n - 1
  End If
  GoTo 1
End If
Application.ScreenUpdating = True
End Sub
 
If Date = "05.05.2014" Then
здесь необходимо заменить дату на актуальную
 
Цитата
Axilless написал:
здесь необходимо заменить дату на актуальную
даже не так - надо заменить на ДАТУ :)
Потому что "05.05.2014" для Excel не дата, а текст. Правильно так:
Код
If Date = #5/5/2014# Then
Но даже это не совсем верно, т.к. защита сработает исключительно на указанную дату. А если дата будет уже больше - то защита не сработает. Т.е. совсем правильно в контексте задачи так:
Код
If Date >= #5/5/2014# Then

Впрочем, если бы Вы ознакомились со статьей по ссылке выше(Как удалить книгу из самой себя), то вряд ли бы эта проблема возникла вообще.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
Впрочем, если бы Вы ознакомились со статьей по ссылке выше( Как удалить книгу из самой себя ), то вряд ли бы эта проблема возникла вообще.
Спасибо, за ответ, я же просил без пословиц и поговорок. А вам предлагаю ознакомиться с моим вопросом, где я сразу сообщил что не работает с любым форматом даты, с вашим форматом так же не работает. Посмотрите лучше код, что то там не до конца с проверкой дат..., ноя в этом не понимаю. Спасибо, за участие.
 
Цитата
Матрена Йапона: я же просил без пословиц и поговорок
вы видите то, чего нет?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Матрена Йапона написал:
я же просил без пословиц и поговорок
да? А я где-то пословицы Вам зачитывал?
Цитата
Матрена Йапона написал:
Посмотрите лучше код, что то там не до конца с проверкой дат
в какое место посмотреть, чтобы понять, что у Вас не работает, если указать как я написал?
Код
If Date >= #2/1/2022# Then

это первое.
Второе: InputBox всегда возвращает текст. А значит при сравнении пароля надо тоже это делать с текстом:
Код
If P = "1234" Then
Т.е. должно получиться так:
Код
Private Sub Workbook_Open()
Dim i&, n&, P As Variant
Application.ScreenUpdating = False
n = 2
If Date >= #2/1/2022# Then
For i = 1 To Sheets.Count
    Sheets(i).Activate
    Sheets(i).Protect "1234"
Next
End If
1:
P = InputBox("Время использования книги истекло, для продолжения введите пароль", "ВВОД ПАРОЛЯ")
If P = "1234" Then
For i = 1 To Sheets.Count
    Sheets(i).Activate
    Sheets(i).Unprotect "1234"
Next
Else
  If n = 0 Then
  Application.DisplayAlerts = False
  ThisWorkbook.Close
  Application.DisplayAlerts = True
  Else
  MsgBox "Пароль не верный, у вас еще " & n & " попытки"
  n = n - 1
  End If
  GoTo 1
End If
Application.ScreenUpdating = True
End Sub

И последнее:
Цитата
Матрена Йапона написал:
для установки пароля на книгу
в Вашем коде нигде нет установки пароля на книгу - только на листы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
Второе: InputBox всегда возвращает текст. А значит при сравнении пароля надо тоже это делать с текстом:
Так, по поводу пароля вопроса не было, работало и так и пароль менялся как нужно без проблем. Считаю что ваше замечание по второму вопросу не актуально. Значит вы его не проверяли. К этому выводу я прихожу по тем основаниям, что ваши поправки не работают и по первому замечанию, прилагаю скрин экрана, где установил дату 2 февраля 22 года, то есть книга должна открываться без пароля, но пароль опять потребовался. Прошу вас удалить ваши пословицы и поговорки из вашего профиля и приступить к решению вопроса по существу. А то что это пароль на листы а не на книгу я лишь констатирую факт то что вижу, обратите внимание на скрин там код устанавливаю на книгу. Может в этом моя ошибка, поправьте если знаете о чем говорите. Спасибо за то что неравнодушны, но там что то с кодом в проверке даты, подумайте еще, пока что не существенные замечания и проверяйте их если не трудно.
 
Цитата
Матрена Йапона написал:
Прошу вас удалить ваши пословицы и поговорки из вашего профиля и приступить к решению вопроса по существу
Вы приказы в другом месте раздавайте. Здесь ни я, ни кто другой Вам ничем не обязан. И подстраивать свой профиль под Вас я тоже не собираюсь.
Цитата
Матрена Йапона написал:
обратите внимание на скрин там код устанавливаю на книгу.
Не вижу нигде ни на скрине, ни в коде установки пароля на книгу. На листы - да. Запрос пароля для защиты на листы - тоже.
Цитата
Матрена Йапона написал:
книга должна открываться без пароля
Нет. Вы же проверку на дату ставите исключительно для блока установки паролей на листы:
Код
If Date >= #2/1/2022# Then
For i = 1 To Sheets.Count
    Sheets(i).Activate
    Sheets(i).Protect "1234"
Next
End If

а после этого у Вас идет запрос пароля. Переместите End If этого блока в конец процедуры(перед Application.ScreenUpdating = True) и запрос пароля будет только после наступления даты:
Код
Private Sub Workbook_Open()
Dim i&, n&, P As Variant
Application.ScreenUpdating = False
n = 2
If Date >= #2/2/2022# Then
    For i = 1 To Sheets.Count
        Sheets(i).Activate
        Sheets(i).Protect "1234"
    Next
    
1:
    P = InputBox("Время использования книги истекло, для продолжения введите пароль", "ВВОД ПАРОЛЯ")
    If P = 1 Then
    For i = 1 To Sheets.Count
        Sheets(i).Activate
        Sheets(i).Unprotect "1234"
    Next
    Else
      If n = 0 Then
      Application.DisplayAlerts = False
      ThisWorkbook.Close
      Application.DisplayAlerts = True
      Else
      MsgBox "Пароль не верный, у вас еще " & n & " попытки"
      n = n - 1
      End If
      GoTo 1
    End If
End If
Application.ScreenUpdating = True
End Sub

Цитата
Матрена Йапона написал:
по поводу пароля вопроса не было, работало и так
дело Ваше, сравнивайте как хотите, если есть желание в один прекрасный момент сидеть и думать с чего это правильно введенный пароль не воспринимается или даже неверный пароль прокатывает. Например, укажите в поле запроса пароль "001234" и посмотрите, покажет ли программа Вам, что пароль введен неверно.
Цитата
Матрена Йапона написал:
не существенные замечания и проверяйте их если не трудно
это не замечания не существенные, а вопрос некорректно поставлен. Вы говорите про защиту книги - а этого нет нигде в коде. Возможно, виной всему неверно выбранная терминология. Защита книги устанавливается через вкладку Рецензирование -Защитить книгу, а кодом так:
Код
ThisWorkbook.Protect "1234"

У Вас этого нигде нет. У Вас есть только запрос пароля при открытии книги, а это разные вещи. Это не имеет отношения к защите книги, т.к. если человек откроет книгу с запрещенными макросами, то ни о какой защите речи не будет.
Изменено: Дмитрий(The_Prist) Щербаков - 01.02.2022 12:29:52
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
дело Ваше, сравнивайте как хотите, если есть желание в один прекрасный момент сидеть и думать с чего это правильно введенный пароль не воспринимается.
Спасибо огромное дорогой друг Дмитрий! Все теперь заработало так как надо!. Шутку с паролем увидел, оценил. Копия так и так была, да и в коде виден изменённый пароль.
         Друзья мои всем спасибо большое. Не хотел ни кого огорчить, один раз простите меня?
Спасибо за ваш сайт, не зря зарегистрировался. Теперь ваши пословицы и поговорки можете оставить, я не против). Предлагаю рассмотреть такую, может подойдет кому: "Все в этом мире-либо пицца, либо не пицца"
 
Имхо вместо защиты файла паролем, который сможет снять фактически любой юзер по инструкции в интернете, можно спрятать где-будь что-то подобное.
Код
=ЕСЛИ(ТДАТА()>44597;0;1)

И потом ссылками через 2-3 ячейки использовать это во всех формулах. Как только проходит время Х (44595 - 5.2.2022 г.), все будет выдавать нули вместо нормальных значений. Продвинутый юзер конечно и такую защиту уберет, но уже не так просто.
Goedenavond!
 
Цитата
написал:
Имхо вместо защиты файла паролем, который сможет снять фактически любой юзер по инструкции в интернете, можно спрятать где-будь что-то подобное.
Спасибо, нет ни каких юзеров, да и оснований у кого либо снимать даже таким способом установленный пароль. Занимаюсь этим исключительно ради того что бы по сетке какой ни будь любознательный сотрудник не залез в базу, хотя наши админы ставят ограничения кому куда можно заходить. В одной сетке сидим по всей стране, секрета в базе нет, сделал ее сам под себя и вот на досуге читаю все что могу понять на форумах. Образования специального нет, о чем я сожалею. Но на уровне обычного пользователя с вашей помощью у меня все получается и это не может не радовать. И как только находится решение одного вопроса, следом же возникает другой и это ни когда не кончится. Вот к примеру, у меня есть взаимозависимые ячейки в экселе 2013 или 2016, смотря в какой комп захожу по удаленке, и мне хотелось бы что бы была возможность при выборе определенного значения в выпадающем списке - то рядом появлялся столбец с текстовым результатом, как при работе с динамическими массивами в офисе 365. А у меня только изменяется одно значение в ячейке и все. Но я уверен что есть способ на старом офисе сделать такую штуку. Может с бубном, а может придет время всем 365 поставят но до этго долго. Да и еще автозаполнение что бы быстро срабатывало в выпадающем списке, он длинный и крутить неприятно долго. А  вот еще одна хотелка, как сделать, что бы в установленную паролем дату база сама архивную копию себя создавала?
Изменено: Матрена Йапона - 02.02.2022 10:51:02
Страницы: 1
Наверх