Имя: Пароль:
1C
 
защитить книгу и лист excel паролем из 1с через OLE
Ø
0 smilerZ
 
27.10.05
09:30
Добрый день.
подскажите, плиз как можно поставить защиту с паролем на лист и книгу Excel из 1с.
Эксель = СоздатьОбъект("Excel.Application");
// снимаем защиту
Эксель.ActiveWorkbook.Unprotect(пароль);
Эксель.ActiveSheet.Unprotect(пароль);
// заполнение Excel файла
...
// ставим защиту
Эксель.ActiveWorkbook.Рrotect(пароль);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
вылетает с ошибкой !
Эксель.ActiveSheet.Рrotect(пароль);
как правильно установить пароль ?
1 Sasha
 
27.10.05
09:38
Эксель.ActiveWorkbook.Password = Пароль;
2 Sasha
 
27.10.05
09:44
Даже лучше наверное так:
Эксель.ActiveWorkbook.Password = Строка(Пароль);
3 Gloom
 
27.10.05
09:48
(1,2)Это установка пароля на открытие книги, а не на защиту.
(0)Похоже, у тебя в "ActiveSheet.Рrotect" кириллица затесалась...
4 smilerZ
 
27.10.05
09:54
спасибо.
а как быть с
Эксель.ActiveSheet.Рrotect(пароль);
Эксель.ActiveSheet.Password = - не работает.
5 Sasha
 
27.10.05
09:58
(3)Хм, а все моя невнимательность %-)
6 smilerZ
 
27.10.05
10:02
to 3
Protect([Password], [Structure], [Windows])
в таком варианте не отрабатывает
Эксель.ActiveWorkbook.Protect("12345678",1,0);
7 Sasha
 
27.10.05
10:05
(6) а разве не так?
Эксель.ActiveWorkBook.Protect(Structure, Windows, Password);
8 smilerZ
 
27.10.05
10:13
возможно, но и так то же не работает
Эксель.ActiveWorkbook.Protect(Structure,Windows,"12345678");
без ошибок отрабатывает только в варианте
Эксель.ActiveWorkbook.Protect(Structure,Windows);
9 Zhuri
 
27.10.05
10:13
Реально работает
ВходExcel.Worksheets("мат").Activate();
ВходExcel.ActiveSheet.UnProtect(Пароль);
//трали вали, тили тили
ВходExcel.ActiveSheet.Protect(Пароль);
10 smaharbA
 
27.10.05
10:21
Эксель = СоздатьОбъект("Excel.Application");
ИмяКниги = Эксель.Workbooks.Open("c:\1.xls").Name();
///Код
Эксель.Workbooks(ИмяКниги).Protect ("123");
____________________________
Я конечно далек от мысли...(с)
11 smaharbA
 
27.10.05
10:24
+(10) 4 (0) потомучто у тебя книга/лист стала неактивной, можно как в (9) но (10) лучче
12 smilerZ
 
27.10.05
10:35
Эксель.ActiveSheet.Protect("12345678");
работает, спасибо.
но не могу понять как включить опцию, что бы нельзя было выделять защищенные ячейки.
13 Gloom
 
27.10.05
10:43
(12)Свойство EnableSelection относится к т.н. "does not stick", т.е. не запоминаются при программной установке, только при ручной установке через интерфейс...
14 smilerZ
 
27.10.05
11:00
to 10, 12
спасибо, все заработало.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший