|   |   | 
| 
 | Защита ячеек excel | ☑ | ||
|---|---|---|---|---|
| 0
    
        YurAnt 18.12.15✎ 14:45 | 
        Доброго времени суток, господа-форумчане.
 Перегреваюсь уже видимо... Имеется Бухгалтерия предприятия КОРП, редакция 2.0 (2.0.64.41) на платформе 8.3 (8.3.6.2390) Задача такова: нужно программно защитить диапазон ячеек в документе excel Проблема 1: Sheet = Book.WorkSheets(ИмяЛиста); Sheet.Cells.Locked = Истина; //Sheet.Cells(1, 1).Locked = Ложь; Sheet.Range("A5:C10").Locked = Ложь; Sheet.Protect("123",1,1,1); Не отрабатывает, лочит весь лист. Проблема 2: Возможно ли сделать аналогичную защиту если документ уже открыт пользователем? Благодарен за любые советы, С ув. YurAnt. | |||
| 1
    
        YurAnt 18.12.15✎ 15:02 | 
        PS excel 2010
 неужели никто не озадачивался блокировкой ячеек/листов открытых экземпляров документа? | |||
| 2
    
        Garykom гуру 18.12.15✎ 15:04 | 
        (1) зачем ексель нужен?     | |||
| 3
    
        mehfk 18.12.15✎ 15:05 | 
        (0) Сделай запись макроса для первой проблемы и посмотри исходный код.     | |||
| 4
    
        Garykom гуру 18.12.15✎ 15:05 | 
        (2)+
 а то тут одна умная сеть автозаправок прислала заполнить вопросник типа 200 бонусов дадим... только xlsx с каким то activex внутри, на моем 2003 офисе нифига не работает (хотя и открылось) и как это заполнять? | |||
| 5
    
        Мэс33 18.12.15✎ 15:07 | 
        (4) разреши запуск макросов - ищи в параметрах настройки безопасности.     | |||
| 6
    
        Garykom гуру 18.12.15✎ 15:08 | 
        (5) не пойдет, там "ошибка activex" тупо нет такого контрола что засунули в док     | |||
| 7
    
        Garykom гуру 18.12.15✎ 15:09 | 
        (6)+ и это не считая проблем с безопасностью, вот же олени     | |||
| 8
    
        Мэс33 18.12.15✎ 15:09 | 
        (0) Нет просто защиты ячейки.
 Есть защита ячейки. Но некоторые ячейки можно запретить запрещать. То есть программно надо на некоторых ячейках снять запрет. Selection.Locked = False Selection.FormulaHidden = False На этих ячейках защита не установится, на остальных (всех) - установится защита. | |||
| 9
    
        Мэс33 18.12.15✎ 15:12 | 
        Sheet = Book.WorkSheets(ИмяЛиста);
 Sheet.Range("A5:C10").Locked = Ложь; // где не надо, чтобы была защита Sheet.Protect("123",1,1,1); | |||
| 10
    
        KnightAlone 18.12.15✎ 15:13 | 
        Попытка 
 Excel = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Не удалось инициализировать Excel"); КонецПопытки; Состояние("Преобразую файл ... "); Попытка ФайлExcel = Excel.Workbooks.Open(ПутьКФайлуФыгрузки); ЛистExcel = ФайлExcel.ActiveSheet; ЛистExcel.Range("V2:X4").locked = False; ЛистExcel.Range("T5:U5").locked = False; ЛистExcel.Range("W5:X5").locked = False; ЛистExcel.Cells(2, 27).locked = False; ЛистExcel.Cells(3, 27).locked = False; Иначе ФайлExcel.ActiveSheet.Protect("---"); Excel.DisplayAlerts = True; ФайлExcel.Windows(1).TabRatio = 0.500; ФайлExcel.Save(); | |||
| 11
    
        KnightAlone 18.12.15✎ 15:16 | 
        Иначе и Попытка - лишние, кусками кидал, но суть понятна вроде     | |||
| 12
    
        dk 18.12.15✎ 15:16 | 
        (0) Ты интерактивно то может сделать то что хочешь программно? Макросы?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |