Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение значения ячейки после вычисления, OnCalculate 
:(
    Опции темы
motorway
Дата 12.7.2009, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Подскажите, как сделать следующее.
Нажимаешь на ячейку. Куда-то запоминается значение, которое там введено.
Вводишь формулу. Нажимаешь Enter, и результат вычисления помещается в комментарий к ячейке, а значение становится равным запомненному ранее.  smile 
PM MAIL   Вверх
Naghual
Дата 12.7.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Ты все развлекаешься?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
motorway
Дата 12.7.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Нет, у меня просто приложение нового поколения. 
PM MAIL   Вверх
Naghual
Дата 12.7.2009, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



ну, ну...
Для таких целей, в самый раз начать писать собственные приложения а не пользоваться VBA.

Касательно твоего вопроса:
События для VBA эксель генерирует ПОСЛЕ события как такового. Так что никак.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
motorway
Дата 13.7.2009, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



В таком случае, последний "странный" вопрос. У меня формулы для ячеек хранятся в примечаниях в виде текста. Соответственно, при изменении адресов ячеек они не меняются, а нужно, чтобы менялись. Как это можно "эмулировать"? Можно их перенести макросом в виде формул обычных на новый лист и выполнить ту же операцию удаления/вставки строки или столбца, чтобы формулы сами изменились. А потом обратно в примечание загнать.

Например, при вставке строки A9+C9 в примечании должно превратиться в A10+C10. Либо надо написать функцию, которая определяет, для каких ячеек нужно в примечании исправить адреса.

Это сообщение отредактировал(а) motorway - 13.7.2009, 00:17
PM MAIL   Вверх
Naghual
Дата 13.7.2009, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Должно быть возможно. Нужно пробовать.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
RockClimber
Дата 13.7.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Цитата(motorway @  13.7.2009,  00:14 Найти цитируемый пост)
В таком случае, последний "странный" вопрос. У меня формулы для ячеек хранятся в примечаниях в виде текста. Соответственно, при изменении адресов ячеек они не меняются, а нужно, чтобы менялись. Как это можно "эмулировать"? Можно их перенести макросом в виде формул обычных на новый лист и выполнить ту же операцию удаления/вставки строки или столбца, чтобы формулы сами изменились. А потом обратно в примечание загнать.

Это просто smile 
Делаешь скрытый лист. На нем пишешь свои формулы (которые ссылаются на видимый лист). Как только на видимом листе вставляешь строку, на скрытом меняется формула. Потом пишешь в обработчик OnChange (не путать с OnSelectionChange!) код, который формулу вставит в примечание. Там же на скрытом листе можно организовать хранение разной дополнительной информации (а она ой как понадобится)...


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
Naghual
Дата 13.7.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Опять скрытые листы... Где-то я это уже слышал...    smile 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
motorway
Дата 13.7.2009, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



А что, есть что-то лучше?
PM MAIL   Вверх
RockClimber
Дата 13.7.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Обычно - да, в данном случае - я не знаю. Но если я предлагаю скрытый лист, то это значит, что у меня фантазия кончилась. Конкретно эта задача необычна для экселя, это как почесать левое ухо правой пяткой.


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
motorway
Дата 14.7.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Насчет скрытых листов. Я решил, что можно их сделать, но если я захочу потом их удалить (в макросе он будет только на время выполнения функции), будет выводиться предупреждение, что там могут содержаться данные. Можно ли удалять сразу без его вывода?

P.S. нашел:
    Application.DisplayAlerts = False, затем включаем на True

Это сообщение отредактировал(а) motorway - 14.7.2009, 21:59
PM MAIL   Вверх
motorway
Дата 15.7.2009, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Нет, все-таки мне определенно нужна помощь с этой проблемой. Нужно, чтобы при изменении адресов ячеек менялись соотв. адреса в примечаниях. 
PM MAIL   Вверх
Naghual
Дата 15.7.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



motorway, я тебе уже говорил:  Пора писать собственное приложение и не мучать VBA


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
RockClimber
Дата 16.7.2009, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Я уже писал, как это сделать. Вот реализация. Если и теперь непонятно, то я даже не знаю.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  111.zip 8,34 Kb


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
motorway
Дата 16.7.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



В общем, кое-как сделал без доп. листа, правда, кое-что для пользователя может быть не удобно. Но там еще одна проблема возникла - иногда в ячейке нужно хранить некоторое значение, и при этом там на время должна появиться формула. При вставке/удалении строк/столбцов это все поедет в какую-то сторону, и потом надо будет восстановить то значение, которое было в ячейке сначала. Но так как ячейки поехали (вниз или вверх, или вправо/влево), то если просто поместить прошлые значения там, где они были, то это будет неправильно. Ведь они должны появиться на новом месте формул по новому адресу. В общем, не знаю, как я справлюсь с этой проблемой, ну ладно...

Это сообщение отредактировал(а) motorway - 16.7.2009, 16:57
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.