0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86

Как снять защиту листа на нажатие уровня структуры

15.08.2010, 13:22. Показов 2876. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такая проблемка, к сожалению не знаю как ее решить. Может кто знает.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.08.2010, 13:22
Ответы с готовыми решениями:

Как снять защиту листа программно?
Нужно срочно изменить формулу на защищенном листе, но пароль где то потерялся, выручте пожалуйста.

Снять защиту листа
здравствуйте, Сервис Защита - ранее было снять защиту листа, сейчас пропало, куда делось?

Снять защиту с листа excel 2016 в VBA
Как снять защиту с листа excel 2016 в VBA

14
 Аватар для SlavaRus
1123 / 235 / 37
Регистрация: 15.03.2010
Сообщений: 724
16.08.2010, 10:45
По моему при щелчке на уровне структуры не генеритс событие. Поэтому если и можно как то зацепиться, то только выворасиванием рук.
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
16.08.2010, 14:17
Такое предложение:
Создать на листе свои кнопки, управляющие отображением уровней структуры
и защитой листа, а отображение значков структуры скрыть.

ActiveWindow.DisplayOutline = False'скрываем значки
Worksheets(1).Outline _
.ShowLevels rowLevels:=3, columnLevels:=1'управляем отображением уровней структуры
0
 Аватар для SlavaRus
1123 / 235 / 37
Регистрация: 15.03.2010
Сообщений: 724
16.08.2010, 17:14
Чтобы было о чем потрещать закину мысль, правда не очень путевую.
Строил я тут на днях диаграммы и заметил, что у внедренной на лист диаграммы событие Calculate возникает при скрытии/отображении строк/столбцов причем даже если они пустые. В принципе это можно использовать для генерации события нажатия на кнопку структуры.
??? Жду ответов.
0
0 / 0 / 0
Регистрация: 31.01.2008
Сообщений: 72
16.08.2010, 22:40
http://rsdn.ru/Forum/?mid=519858
0
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
17.08.2010, 11:24  [ТС]
Зашел я на эту ссыллку, честно ничего не понял.
Куда эти строчки нужно записывать?

ActiveSheet.EnableOutlining = True
ActiveSheet.Protect contents:=True, userInterfaceOnly:=True
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
17.08.2010, 16:34
2SlavaRus:
Проверил - верно. Но(!) событие Calculate генерируется в описанных
тобой случаях лишь при последующей активизации листа диаграммы.
Т.е. если этот лист скрыть (сделать это, наверное, необходимо,
поскольку он вспомогательный),то ничего и не произойдёт. А активировать
лист (если он не скрыт) как? - вручную? Или я чего-то не понимаю?

Сдаётся мне, что это замена шила на мыло. Или я ошибаюсь?
0
 Аватар для SlavaRus
1123 / 235 / 37
Регистрация: 15.03.2010
Сообщений: 724
17.08.2010, 17:53
Я написал <у внедренной на лист диаграммы>. Причем если на лист внедрить ComboBox, то событие Change генерится до изменения на листе, а в Chart после.
0
 Аватар для SlavaRus
1123 / 235 / 37
Регистрация: 15.03.2010
Сообщений: 724
17.08.2010, 17:59
Я не писал, что это хорошее решение, скорее возможность сгенерить событие _Click
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
17.08.2010, 18:41
> Я написал <у внедренной на лист диаграммы>.

Вот я и говорю, что не понимаю, как и где у такой диаграммы
пишется код её событий: для диаграммы на отдельном листе -
очевидно где, а для внедрённой???
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
17.08.2010, 18:49
> Я не писал, что это хорошее решение, скорее возможность сгенерить событие _Click

Абсолютно согласен.
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
17.08.2010, 19:38
< Зашел я на эту ссыллку, честно ничего не понял.
Куда эти строчки нужно записывать?>

Куда угодно.
Выполни этот код, когда твой лист будет активен (1 раз!), и всё заработает.
0
 Аватар для SlavaRus
1123 / 235 / 37
Регистрация: 15.03.2010
Сообщений: 724
18.08.2010, 09:18
from vlth
В модуле класса пишем:

Public WithEvents MyChart As Chart

Private Sub MyChart_Calculate()
MsgBox 'Опс!'
End Sub

В модуле пишем:

Dim MyChartEvent As New Class1

Public Sub SartEvent()
Set MyChartEvent.MyChart = Worksheets(1).ChartObjects(1).Chart
End Sub

Подразумевается, что диаграмма на листе есть.
Дальше мне кажется просто можно написать в молуле класса
Public Event MyEvent()
В событии MyChart_Calculate после соответствующих проверок написать
if ... then RaiseEvent MyEvent
И в принципе событие готово!
))
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
18.08.2010, 12:59
For SlavaRus:
Спасибо!
Несмотря на понимание, что без создания класса здесь не обойтись, при
отсутствии опыта подобной работы (не написал я ещё ни одного такого
модуля), решил уточнить
0
 Аватар для SlavaRus
1123 / 235 / 37
Регистрация: 15.03.2010
Сообщений: 724
18.08.2010, 14:58
From vlth
Аналогичным образом можно повеситься например на событие Click кнопки в каком нибудь CommandBars и перехватить его, тоже ьывает полезно. Плохо, что в ёлселе скрытие/отображение строк/столбцов не генерит никакого события. Если в ячейке введена формула '=ЯЧЕЙКА('ширина';A1)', то при скрытии 1столбца в ячейке будет неверное значение до следующего пересчета листа. В своё время это у меня отняло уйму времени. А теперь чисто случайно подметил особенность у диаграм. Может быть кому то будет полезно. Кстати событие ради спортивного интереса я все таки написал, но для одного уровня структкры. Дальше лень... )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.08.2010, 14:58
Помогаю со студенческими работами здесь

Снять защиту с листа, если забыл пароль
Я извеняюсь если мой вопрос будет здесь не по адресу. Подскажите пожалуйста, есть ли способ снять защиту с листа, если забыл пароль? ...

Программно снять защиту с листа чтобы добавить строку
Добрый день! Есть макрос на добавление строки: Sub add_row() Rows(ActiveCell.Row).Insert Rows(ActiveCell.Row +...

Как снять защиту с флешки?
Флешка kingston. При попытке записать/удалить/запустьть что нибудь появдяется надпись защищено. Что это и как исправить?

Как снять защиту с модуля?
Такая история: есть шаблон MS Word(или Excell) c расширением dot(или xlt соответственно). В шаблоне есть свой проект и несколько модулей со...

Как снять защиту с pdf файла
Как написать программу на c# чтобы снимала защиту с pdf файла.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru