|
1С и Excel. Как включить программно автофильтр для защищенного листа | ☑ | ||
---|---|---|---|---|
0
2S
19.04.11
✎
14:12
|
Что-то туплю
Лист.Range("L4").AutoFilter(1); Книга.ActiveSheet.Protect("Пароль"); Надо установить защиту листа с возможностью использования автофильтра. Какой синтаксис Protect? Ставил и 1 после пароля, тогда вообще открывает весь лист на редактирование.( Такая возможность есть в экселе если интерактивно защищать лист. В макросе ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True Как в 1С реализовать? |
|||
1
2S
19.04.11
✎
14:16
|
гуру VBA имеются?
|
|||
2
2S
19.04.11
✎
14:20
|
Книга.ActiveSheet.Protect("Пароль",1,1,1);
не работает ( |
|||
3
2S
19.04.11
✎
14:25
|
ап
|
|||
4
2S
19.04.11
✎
14:40
|
подниму еще разок
|
|||
5
KishMish
19.04.11
✎
14:54
|
в редакторе ВБА нажми а1 и ищи протект.
там куча параметров Name Required/Optional Data Type Description Password Optional Variant A string that specifies a case-sensitive password for the worksheet or workbook. If this argument is omitted, you can unprotect the worksheet or workbook without using a password. Otherwise, you must specify the password to unprotect the worksheet or workbook. If you forget the password, you cannot unprotect the worksheet or workbook. DrawingObjects Optional Variant True to protect shapes. The default value is True. Contents Optional Variant True to protect contents. For a chart, this protects the entire chart. For a worksheet, this protects the locked cells. The default value is True. Scenarios Optional Variant True to protect scenarios. This argument is valid only for worksheets. The default value is True. UserInterfaceOnly Optional Variant True to protect the user interface, but not macros. If this argument is omitted, protection applies both to macros and to the user interface. AllowFormattingCells Optional Variant True allows the user to format any cell on a protected worksheet. The default value is False. AllowFormattingColumns Optional Variant True allows the user to format any column on a protected worksheet. The default value is False. AllowFormattingRows Optional Variant True allows the user to format any row on a protected. The default value is False. AllowInsertingColumns Optional Variant True allows the user to insert columns on the protected worksheet. The default value is False. AllowInsertingRows Optional Variant True allows the user to insert rows on the protected worksheet. The default value is False. AllowInsertingHyperlinks Optional Variant True allows the user to insert hyperlinks on the worksheet. The default value is False. AllowDeletingColumns Optional Variant True allows the user to delete columns on the protected worksheet, where every cell in the column to be deleted is unlocked. The default value is False. AllowDeletingRows Optional Variant True allows the user to delete rows on the protected worksheet, where every cell in the row to be deleted is unlocked. The default value is False. AllowSorting Optional Variant True allows the user to sort on the protected worksheet. Every cell in the sort range must be unlocked or unprotected. The default value is False. AllowFiltering Optional Variant True allows the user to set filters on the protected worksheet. Users can change filter criteria but can not enable or disable an auto filter. Users can set filters on an existing auto filter. The default value is False. AllowUsingPivotTables Optional Variant True allows the user to use pivot table reports on the protected worksheet. The default value is False. их все надо указывать с скобахпо порядку |
|||
6
KishMish
19.04.11
✎
14:55
|
+(5) AllowFiltering - предпоследний
|
|||
7
KishMish
19.04.11
✎
14:56
|
+(5) нажми F1 то бишь хелп
оно же тут вроде http://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.worksheet.protect.aspx |
|||
8
2S
19.04.11
✎
15:07
|
(7) да пробывал
Книга.ActiveSheet.Protect("Пароль",,,,,,,,,,,,,,1); все равно не работает |
|||
9
2S
19.04.11
✎
15:16
|
+(8)
Книга.ActiveSheet.Protect("123",0,1,1,1,0,0,0,0,0,0,0,0,1,1,0); блокируется весь лист все равно |
|||
10
KishMish
19.04.11
✎
15:18
|
а макросом в Екселе работает?
если да, то создай файл-шаблон с записанным макросом. его заполняй и вызывай макрос |
|||
11
2S
19.04.11
✎
15:19
|
макросом работает
нафиг, макросом бух поработет, защитит лист с установленным флажком использования автофильтра сама :) |
|||
12
2S
19.04.11
✎
15:21
|
судя по всему фича какая-то
находил темы похожие, проблма не решалась |
|||
13
KishMish
19.04.11
✎
15:25
|
Есть макроязык в екселе (не ВБА) - возможно там можно будет установить через Application.ExecuteExcel4Macro(СрокаМакроЯзыка)
|
|||
14
KishMish
19.04.11
✎
15:26
|
думаю все из за того что тип параметра ВАРИАНТ. ты передаешь число, преобразования не происходит.
как то так |
|||
15
KishMish
19.04.11
✎
15:27
|
насчет макроса. можно написать макрос и вызвать его програмно из 1С комнадой RUN(ИмяПроцедуры)
|
|||
16
KishMish
19.04.11
✎
15:38
|
вот жэтот код уменя все нормально работает
блокирует лист и разрешает фильтр |
|||
17
KishMish
19.04.11
✎
15:38
|
Excel = CreateObject("Excel.Application");
НоваяКнига = Excel.WorkBooks.Add(); //Делаем нову. книгу ЛистыЖе= НоваяКнига.Sheets;//Сколько же тут страниц Excel.Visible=1; ПервыйЛист=НоваяКнига.Sheets(1); ПервыйЛист.PageSetup.Orientation = 2; ПервыйЛист.Select(); ПервыйЛист.Cells(1,1).Value = 1; ПервыйЛист.Cells(1,2).Value = 2; ПервыйЛист.Cells(2,1).Value = 3; ПервыйЛист.Cells(2,2).Value = 4; ПервыйЛист.Range("A2").AutoFilter(1); ПервыйЛист.Protect("123",0,1,1,1,0,0,0,0,0,0,0,0,1,1,0); |
|||
18
Tatitutu
19.04.11
✎
15:39
|
(0)
все намного проще это старая фича //так не работает Книга.ActiveSheet.Protect("Пароль"); //а так заработает Книга.ActiveSheet.Protect(12345); |
|||
19
KishMish
19.04.11
✎
15:40
|
+(17) ексель 2007
|
|||
20
FN
19.04.11
✎
15:45
|
ф=Ексель.Cells.Select; //выделяем все ячейки
ф=Ексель.Selection.Columns.AutoFit; //автоширина для выделенного фрагмента (весь лист) ф=Ексель.Selection.AutoFilter; ... Если Защита=2 тогда Ексель.ActiveSheet.Protect("ненадосниматьзащиту!",1,1,1,0,0,1,1,1,0,0,0,0,1,1,0); //защитим лист ИначеЕсли Защита=3 тогда Ексель.ActiveSheet.Protect("ненадосниматьзащиту!",1,1,1,0,0,0,0,0,0,0,0,0,1,1,0); //защитим лист КонецЕсли; точно работает |
|||
21
smaharbA
19.04.11
✎
15:57
|
|
|||
22
2S
19.04.11
✎
16:18
|
о, спасибо
будет завтра чем заняться :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |