|
Вопрос # 3 716/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
После выполнения кода:
ActiveWindow.ScrollColumn = Val(ComboBox3) + 2 'Фиксирование столбца у вертикальной границы закрепления области
Происходит защита листа:
Worksheets("Расход").Protect Password:="1111" 'Защитить лист паролем
Но если произвести двойной клик по защищенному листу, то фиксированный столбец возвращается в исходное положение (то есть восстанавливается первоначальное положение закрепление области)
Как это избежать?
Как разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области, а также разблокировать столбец со строки 41 под датой, фиксированного у вертикальной границы закрепления области.
Для того чтобы произвести данное действие и понять смысл необходимо выполнить условия (для этого будут выходить подсказки)
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: 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 (статус: Посетитель), 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 (статус: Посетитель), 30 января 2010, 17:52 [#4]:
Вот вот, первое лист не должен возвращаться к исходной дате или к вертикальной границы закрепления области.
Данный код
ActiveWindow.ScrollColumn = Val(ComboBox3) + 2
Выставляет столбец с выбранной датой, у вертикальной границы закрепления области.
|
|
Егор (статус: 10-ый класс), 30 января 2010, 18:14 [#5]:
эксель делает переход, чтобы показать активную ячейку (пусть даже и не показывается, что она выделена). если сделать активной ячейку AI1, например, то после двойного щелчка будет прокрутка к последнему столбцу даже если выбрать первую дату.
выход - нужно не только делать скроллинг но и менять активную ячейку.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
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 (статус: Посетитель), 30 января 2010, 18:35 [#8]:
момент
|
|
resseg (статус: Посетитель), 30 января 2010, 18:41 [#9]:
Чудные дела твои Егор. Можно оформлять как ответ.
Тогда я задам новый вопрос по этой теме. Так как вопрос имеет продолжение, это было описано выше.
Как разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области, а также разблокировать столбец со строки 41 под датой, фиксированного у вертикальной границы закрепления области.
|
|
Егор (статус: 10-ый класс), 30 января 2010, 18:51 [#10]:
бррр...
не понял 
уж прошу прощения - суббота, вечер, знаете ли... ))
Цитата (resseg):
разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области, а также разблокировать столбец со строки 41 под датой, фиксированного у вертикальной границы закрепления области
не варит башка 
попонятнее бы, а?
ну, типа, вот выбрали мы дату 31/01/10 (как выше описано) и должны разблокироваться ячейки такие-то
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
resseg (статус: Посетитель), 30 января 2010, 18:53 [#11]:
момент
|
|
resseg (статус: Посетитель), 30 января 2010, 19:05 [#12]:
Возьмем текущую дату 30
После клика по кнопке со знаком "–" лист с данной датой зафиксируется на вертикальной границы закрепления области. (это Вы знаете)
Необходимо разблокировать или снять защиту с ячейки которая находится под фиксированной датой (в данном случае у нас 01.30.09), для того чтобы пользователь мог ввести числовое значение температуры.
Также необходимо снять защиту или разблокировать столбец со строки 41 под фиксированной датой, для ввода данных.
|
|
Егор (статус: 10-ый класс), 30 января 2010, 19:10 [#13]:
т.е. разблокировать ячейки AF5 и AF41:AF45?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
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 (статус: Посетитель), 30 января 2010, 19:39 [#16]:
Для полной картины снимите защиту и откройте скрытые строки:
Ячейка температур находится всегда под ячейкой выбранной даты (ячейка даты тоже не имеет постоянную строку), если за основу взять формат даты найденной ячейки…?
|
|
resseg (статус: Посетитель), 30 января 2010, 19:56 [#17]:
В принципе адрес это нижняя ячейка которая находится под ячейкой с датой зафиксированной у вертикальной границы закрепления области…
Что то в этом роде.
|
|
resseg (статус: Посетитель), 30 января 2010, 20:28 [#18]:
Может условие? Взять объект Lab_Data (объект где формируется дата)
If Lab_Data = ( ячейки с датой данного диапозона) Then
Плюс на ячейку ниже разблокировать...
|
|
Егор (статус: 10-ый класс), 31 января 2010, 10:48 [#19]:
честно говоря, не знаю, как разблокировать отдельную ячейку. это какое свойство? и чему его нужно установить?
а после ответа на этот вопрос снять блокировку-то, в общем, несложно
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
resseg (статус: Посетитель), 31 января 2010, 17:41 [#20]:
Что то в этом роде для ячейки
Selection.Locked = False
Затем заблокировать лист паролем
Worksheets("Расход").Protect Password:="1111"
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|