Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 716

Раздел: Basic
/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

После выполнения кода:
ActiveWindow.ScrollColumn = Val(ComboBox3) + 2 'Фиксирование столбца у вертикальной границы закрепления области
Происходит защита листа:
Worksheets("Расход").Protect Password:="1111" 'Защитить лист паролем
Но если произвести двойной клик по защищенному листу, то фиксированный столбец возвращается в исходное положение (то есть восстанавливается первоначальное положение закрепление области)
Как это избежать?
Как разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области, а также разблокировать столбец со строки 41 под датой, фиксированного у вертикальной границы закрепления области.
Для того чтобы произвести данное действие и понять смысл необходимо выполнить условия (для этого будут выходить подсказки)

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

resseg Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: resseg (статус: Посетитель)
Вопрос отправлен: 30 января 2010, 14:26
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 21; последнее сообщение — 31 января 2010, 18:02; участников в обсуждении: 2.

Страницы: [1] [2] [Следующая »]

Егор

Егор (статус: 10-ый класс), 30 января 2010, 17:18 [#1]:

файл скачал, двойной щелчок сделал. защита не снимается
не понял

использую excel 2003
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 17:27 [#2]:

Произведите все необходимые действия:
Выбор месяца- выберите январь
Выбор даты- выберите например 30
Выбор фирмы- необходимо создать/ введите фирму/клик по синему/затем выберите фирму из раскрывающегося списка.
Затем произведите клик по кнопке со знаком -
Что произойдет, сообщите.
Егор

Егор (статус: 10-ый класс), 30 января 2010, 17:47 [#3]:

слева остался заголовок
------------------------
расход дтл январь
...
4 Камаз 4
------------------------

а справа - столбцы АF, AG, AH с данными - по датам от 30/01/10 и 31/01/10
сделал двойной щелчок - лист вернулся к дате 01/01/10
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 17:52 [#4]:

Вот вот, первое лист не должен возвращаться к исходной дате или к вертикальной границы закрепления области.

Данный код
ActiveWindow.ScrollColumn = Val(ComboBox3) + 2
Выставляет столбец с выбранной датой, у вертикальной границы закрепления области.
Егор

Егор (статус: 10-ый класс), 30 января 2010, 18:14 [#5]:

эксель делает переход, чтобы показать активную ячейку (пусть даже и не показывается, что она выделена). если сделать активной ячейку AI1, например, то после двойного щелчка будет прокрутка к последнему столбцу даже если выбрать первую дату.
выход - нужно не только делать скроллинг но и менять активную ячейку.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 18:18 [#6]:

Я проделывал данное действие без кода, на простом листе, там такого перехода нет…
Егор

Егор (статус: 10-ый класс), 30 января 2010, 18:34 [#7]:

может быть, на пустом листе такого и нет
а здесь есть.

"чудны дела твои, о БГ" :)))

...
        ActiveWindow.ScrollColumn = Val(ComboBox3) + 2 'Фиксирование столбца у вертикальной границы закрепления области
 
        '________________________________...Ваш код SERG
 
        Range("A" + Trim(Str(ComboBox3.Value))).Select ' <<==== добавляем переход к новой активной ячейке
...

теперь по двойному щелчку не перескакивает.

можно оформлять как ответ?
:)))))))))
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 18:35 [#8]:

момент
resseg

resseg (статус: Посетитель), 30 января 2010, 18:41 [#9]:

Чудные дела твои Егор. Можно оформлять как ответ.
Тогда я задам новый вопрос по этой теме. Так как вопрос имеет продолжение, это было описано выше.
Как разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области, а также разблокировать столбец со строки 41 под датой, фиксированного у вертикальной границы закрепления области.
Егор

Егор (статус: 10-ый класс), 30 января 2010, 18:51 [#10]:

бррр...
не понял :)
уж прошу прощения :) - суббота, вечер, знаете ли... :)))

Цитата (resseg):

разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области, а также разблокировать столбец со строки 41 под датой, фиксированного у вертикальной границы закрепления области

не варит башка :)
попонятнее бы, а?
ну, типа, вот выбрали мы дату 31/01/10 (как выше описано) и должны разблокироваться ячейки такие-то
:)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 18:53 [#11]:

момент
resseg

resseg (статус: Посетитель), 30 января 2010, 19:05 [#12]:

Возьмем текущую дату 30
После клика по кнопке со знаком "–" лист с данной датой зафиксируется на вертикальной границы закрепления области. (это Вы знаете)
Необходимо разблокировать или снять защиту с ячейки которая находится под фиксированной датой (в данном случае у нас 01.30.09), для того чтобы пользователь мог ввести числовое значение температуры.
Также необходимо снять защиту или разблокировать столбец со строки 41 под фиксированной датой, для ввода данных.
Егор

Егор (статус: 10-ый класс), 30 января 2010, 19:10 [#13]:

т.е. разблокировать ячейки AF5 и AF41:AF45?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 19:25 [#14]:

В зависимости от даты разблокировать столбец данной даты. Разблокировать ячейку под датой (ячейка под датой не имеет постоянной строки) и столбец (начальные координаты столбца постоянно начинаются со строки 41, вертикально тоже под выбранной датой).

..........01.30.2010
..........0.............разблокировать
..........-
..........-
41........0.............разблокировать
42........0.............разблокировать
43........0.............разблокировать
........................и так далее вниз по стобцу
Егор

Егор (статус: 10-ый класс), 30 января 2010, 19:32 [#15]:

если мы не знаем адрес ячейки

Цитата (resseg):

ячейка под датой не имеет постоянной строки

то как мы определим, какую нужно разблокировать?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 30 января 2010, 19:39 [#16]:

Для полной картины снимите защиту и откройте скрытые строки:
Ячейка температур находится всегда под ячейкой выбранной даты (ячейка даты тоже не имеет постоянную строку), если за основу взять формат даты найденной ячейки…?
resseg

resseg (статус: Посетитель), 30 января 2010, 19:56 [#17]:

В принципе адрес это нижняя ячейка которая находится под ячейкой с датой зафиксированной у вертикальной границы закрепления области…
Что то в этом роде.
resseg

resseg (статус: Посетитель), 30 января 2010, 20:28 [#18]:

Может условие? Взять объект Lab_Data (объект где формируется дата)
If Lab_Data = ( ячейки с датой данного диапозона) Then
Плюс на ячейку ниже разблокировать...
Егор

Егор (статус: 10-ый класс), 31 января 2010, 10:48 [#19]:

честно говоря, не знаю, как разблокировать отдельную ячейку. это какое свойство? и чему его нужно установить?

а после ответа на этот вопрос снять блокировку-то, в общем, несложно
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 31 января 2010, 17:41 [#20]:

Что то в этом роде для ячейки
Selection.Locked = False

Затем заблокировать лист паролем
Worksheets("Расход").Protect Password:="1111"

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:49
Выполнено за 0.03 сек.