Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - Формула в примечание Excel

Ответить
Настройки темы
2007 - Формула в примечание Excel

Аватара для Michael Mikhail

Старожил


Сообщения: 275
Благодарности: 6

Профиль | Отправить PM | Цитировать


Здравствуйте,

Можно ли получить результат вычисления формулы в примечании к ячейке?
Конкретизирую, - нужно разделить значение ячейки A1 на "N" (N - целое число) и результат вычисления отобразить в примечании к этой же ячейке. Синтаксис оператора, в частности для деления, есть здесь: http://msdn.microsoft.com/ru-ru/library/25bswc76.aspx
На некоторых форумах предлагается осуществить вычисление в отдельной ячейке с последующим переносом результата в примечание, но если VBA сам осуществляет вычисления, зачем прибегать к помощи вспомогательной ячейки?

Отправлено: 17:11, 21-11-2012

 

Аватара для Michael Mikhail

Старожил


Сообщения: 275
Благодарности: 6

Профиль | Отправить PM | Цитировать


Спасибо, но почему то функция отмены последнего действия (действий), - стрелочка влево (Ctrl+Z), перестала работать: что ж я теперь, предыдущее значение ячейки не могу вернуть (на случай некорректного ввода текущего)? Кое-что (http://www.excel-vba.ru/chto-umeet-e...tviya-makrosa/) почитал, теперь задумался, - насколько востребованным может быть использование макросов.
Кроме того, код заработал только после того, как я его поместил в сам лист (через: Кнопка "Разработчик", кнопка "Visual Basic," "Лист 1", "View code"), а не в модуль листа (в котором он отказывался работать). При этом код работает только в незанятых (пустых) ячейках, а мне бы хотелось, чтобы примечание появлялось к ячейке, значение которой вычисляется по формулам Excel, из данных других ячеек.

Можно ли как-то задавать позицию комментария на листе (отличную от установленной по умолчанию)?

И ещё, - периодически стало появляться сообщение: "Предупреждение о конфиденциальной информации: документ содержит макросы, элементы управления ActiveX, данные пакета расширения XML или веб-компоненты. Они могут включать личные сведения, которые нельзя удалить с помощью инспектора документов". Если нажать "Отмена", появляется следующее сообщение: "Возникла непредвиденная ошибка. В этом сеансе работы с Excel автовосстановление отключено".

-------
Чем "больше" компьютер "висит", тем он умнее!


Последний раз редактировалось Michael Mikhail, 23-11-2012 в 18:11.


Отправлено: 13:29, 23-11-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Цитата Michael Mikhail:
я его поместил в сам лист »
это я и понимал под "модулем листа"
Цитата Michael Mikhail:
мне бы хотелось, »
Переделал код под вашу "хотелку". Допустим, формулы находятся в диапазоне С1:С10, там же будут и комментарии. Добавил параметры положения комментария.
читать дальше »
Код: Выделить весь код
Private Sub Worksheet_Calculate()
With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With
For Each c In Range("C1:C10")
    If c.Comment Is Nothing Then c.AddComment
'--------------------------------------------
' получение значения "comtext" в ваших руках - формула в скобках любая.
'-----------------------------------------
        comtext = CStr(c.Value / 2)
'-----------------------------------------
            With c.Comment
                .Text Text:=comtext
' чтобы коммент был виден, раскомментируйте строчку ниже
'                .Visible = True
                .Shape.TextFrame.AutoSize = True
' положение комментария - изменение числового значения второго параметра мне отследить не удалось
                .Shape.Left = 200
                .Shape.Height = 100
            End With
' форматирование комментария
'--------------------------------------------
            With c.Comment.Shape.TextFrame
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .ReadingOrder = xlContext
                .AutoSize = True
                .Characters.Font.Bold = True
                .Characters.Font.Size = 9
            End With
Next
With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With
End Sub

Цитата Michael Mikhail:
периодически стало появляться сообщение »
Так и будет для книг с макросом.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Последний раз редактировалось okshef, 24-11-2012 в 12:05.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:46, 23-11-2012 | #12


Аватара для Michael Mikhail

Старожил


Сообщения: 275
Благодарности: 6

Профиль | Отправить PM | Цитировать


Спасибо, всё работает!

Теперь остаётся только эксперементировать с формулами в выбранном диапазоне.
Насколько я понял отсюда: http://forum.developing.ru/showthrea...BD%D1%8B%D1%85 отменить действие макроса, в общем случае непросто (хотя на других форумах и приводятся различные варианты решения узких задач), но в любом случае, стандартной функцией отмены - стрелочкой влево, после выполнения макроса воспользоваться невозможно. Пробовал использовать скрипт отсюда: http://forum.ru-board.com/topic.cgi?...0903&start=360, на этапе отладки пишет "Compile error. Sub or function not defined" и выделяет команду "Is_sheet_exist".

Таким образом, проблема решена, а далее буду думать как и многие, можно ли реализовать в общем виде алгоритм отката макроса.

-------
Чем "больше" компьютер "висит", тем он умнее!


Отправлено: 13:44, 24-11-2012 | #13


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Цитата Michael Mikhail:
можно ли реализовать в общем виде алгоритм отката макроса. »
как создать макрос, действия которого можно было бы отменить кнопкой Ctrl+Z ?

Но это совершенно другая тема. Удачи!

P.S. Michael Mikhail, нашел, как изменить положение коммента по вертикали. В коде
Код: Выделить весь код
' положение комментария - изменение числового значения второго параметра мне отследить не удалось
                .Shape.Left = 200
                .Shape.Height = 100
измените .Shape.Height = 100
на
Код: Выделить весь код
.Shape.Top = c.Row * c.RowHeight - 5
Поэкспериментируйте с числами и при необходимости поставьте свои.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Последний раз редактировалось okshef, 25-11-2012 в 13:32.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:01, 24-11-2012 | #14


Аватара для Michael Mikhail

Старожил


Сообщения: 275
Благодарности: 6

Профиль | Отправить PM | Цитировать


Спасибо ещё раз - буду экспериментировать.

-------
Чем "больше" компьютер "висит", тем он умнее!


Отправлено: 10:13, 26-11-2012 | #15



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - Формула в примечание Excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - формула в шаблоне Excel Busla Microsoft Office (Word, Excel, Outlook и т.д.) 2 14-09-2011 12:33
Java - Вычислительная формула Opium___ Программирование и базы данных 0 07-12-2010 11:10
Разное - [решено] Одна и та же формула считает по разному в Excel и PHP Artem-Samsung Программирование и базы данных 1 21-10-2010 18:39




 
Переход