Страницы: 1
RSS
Как поставить защиту от изменений
 
У меня программа сохраняет внесенные изменения в форму и заново потом эти измененные параметры использует.  
 
Можно ли поставить какую-то защиту от изменения внутри этого файла людьми, то есть программа сама может менять, а человек открыв файл эту историю изменений ручками подправить не может.  
 
Просто если в безопасности файла я ставлю запреты, то программа не срабатывает. АВыводится сообщение, что файл защищен или зашифрован.
 
В 2000 такого ведь нет? С какой версии такой код будет работать?
 
{quote}{login=The_Prist}{date=27.05.2010 01:48}{thema=}{post}ActiveSheet.Protect UserInterfaceOnly:=True{/post}{/quote}  
 
А можешь прокомментировать, пожалуйста!  
А куда мне эту строчку вставить? В тот файл, где код самой программы или в файл, куда записывается моя история?
 
Вставила в саму программу, он на этой строчке  
Workbooks("История изменения параметров.xls").Sheets(1).Protect Password:="111", UserInterfaceOnly:=True  
 
выдал ошибку 9 - элемент за пределами диапазона!  
 
В чем причина?
 
Возможно Вы не указали в "...Sheets("название?!")..." ?
<FONT COLOR="CadetBlue">
 
И так тоже ошибку выдает!
 
Так вроде работает! Только теперь такая проблема, программа первый раз отработала своё, данные записались в файл история_изменений, этот файл защитили от исправлений, сохранили, дальше запускаю заново программу для обработки другого файла, так как программа обращается к данным, сохраненным в файле история_изменений, который  уже защищен, то программа перестает работать , выдавая сообщение, что файлы защищены паролем!  
 
Так должно быть? И как с этим бороться?
 
Создала новую книгу Книга.xls, вставила в код основной программы строчку Workbooks("Книга1.xls").Sheets("Лист1").Protect Password:="111", UserInterfaceOnly:=True  
 
Результат:  
1. Программа делает все действия, затем внесенные данные в поля Userform записывает в  Книга.xls и затем защищает этой строчкой данные на листе этой книги паролем от изменений.  
2. Затем опять данной программой начинаю обрабатывать новый файл, но обработка невозможна,так как листы защищены.  
 
Программа с каждым запуском загружает последние сохраненные данные в поля Userform из Книга.xls по умолчанию  
 
Но так листы защищены Workbooks("Книга1.xls").Sheets("Лист1").Protect Password:="111", UserInterfaceOnly:=True,  
 
то забрать оттуда она их не может и происходит преостановка.  
 
Этого можно избежать?
 
А так можно? - открываем книгу, снимаем защиту, что-то делаем с ней, ставим защиту, закрываем книгу.
 
Здравствуй, Николай!  
Думаю, можно! Сейчас попробую.  
 
Скажи, пожалуйста, по-поводу прошлой задачки  
С суммой разобралась, дописала сумму в самом начале модуля пять и всё заработало. В самом файле просто формулы вставлять не стала.  
 
Я еще раз протестировала форму и появился вопрос:  
Скажи, но ведь теперь, когда мы берем настройки по умолчанию из последней строчки истории, то в файл история изменений вновь записываются данные.    
 
А разве никак нельзя сделать, чтобы данные в историю не каждый раз при работе программы сохранялись, а только в момент реального изменения при вводе пароля?
 
Попробуйте в процедуре инициализации заполнение массива tt1 с проверкой пароля вписать в последний блок With Application.Workbooks.Open... End With. Т.е. считывать значения из файла, а не из боксов на форме.
 
У меня так и прописано:  
 
With Application.Workbooks.Open(Filename:=ThisWorkbook.Path & "\История изменения параметров.xls")  
   With Sheets(1)  
   j = .Cells(Rows.Count, 1).End(xlUp).Row  
       For i = 1 To 36  
           UserForm1.Controls("TextBox" & i) = .Cells(j, i + 3).Value  
       Next i  
   End With  
     
   With Sheets(2)  
   j = .Cells(Rows.Count, 1).End(xlUp).Row  
       For i = 37 To 60  
           UserForm1.Controls("TextBox" & i) = .Cells(j, i - 33).Value  
       Next i  
   End With  
     
.Close SaveChanges:=False  
End With
 
Да, именно сюда (в этот блок) перенести заполнение массива tt1 с проверкой пароля.
 
Внесла заполнение в этот блок, всё равно сохраняет историю, даже, если не вносим никаких изменений.  
Что делать?
Страницы: 1
Читают тему
Наверх