Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2015, 14:21   #1
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию Как написать макрос, чтобы Примечание всплывало в определенном месте

есть вот такой макрос, при котором появляется примечание, если ячейки выделена

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.DisplayCommentIndicator = -1

If Not Target.Comment Is Nothing Then Target.Comment.Visible = True
End Sub

но как сделать, чтобы это примечание появлялось там где мне нужно (над или под ячейкой)
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 07.06.2015, 14:55   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly

    If Target.Comment Is Nothing Then Exit Sub
    
    With Target.Comment
         .Shape.Left = Target.Left
         .Shape.Top = Target(2, 1).Top
         .Visible = True
    End With
End Sub
pashulka вне форума Ответить с цитированием
Старый 07.06.2015, 15:01   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

для изменения режима отображения примечаний не нужно писать макрос:
Ексел
Параметры
Дополнительно
в группе Экран видите следующее:
для ячеек с примечаниями показывать:
- ни примечаний ни индикатор
- только индикатор (и всплывающее примечание)
- примечание и индикатор

для варианта 3 (постоянно отображаемых примечаний) можно управлять местоположением примечания.
этот
Код:
Sub SetCommentsUnderCell()
  Dim c As Comment
  For Each c In Comments
    c.Shape.Left = c.Parent.Left
    c.Shape.Top = c.Parent.Top + c.Parent.Height
  Next
End Sub
, выполненый при каком-то активном листе, заставит все примечания данного листа расположиться строго, под ячейкой, в которой они записаны
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 07.06.2015 в 15:04.
IgorGO вне форума Ответить с цитированием
Старый 07.06.2015, 15:45   #4
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly

    If Target.Comment Is Nothing Then Exit Sub
    
    With Target.Comment
         .Shape.Left = Target.Left
         .Shape.Top = Target(2, 1).Top
         .Visible = True
    End With
End Sub
это хороший вариант, но лучше бы было, если бы сверху. так как если ячейка внизу листа, то его не видно. но при этом исключить вариант, если ячейка в первой строке. спасибо
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 07.06.2015, 15:59   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub SetCommentsAboveCell()
  Dim c As Comment
  For Each c In Comments
    if c.shape.heigth > c.parent.top then
      c.shape.top = 0
      c.shape.left = c.parent.left + c.parent.width
    else
      c.shape.top = c.parent.top - c.shape.heigth
      c.Shape.Left = c.Parent.Left
    end if
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.06.2015, 16:17   #6
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
Sub SetCommentsAboveCell()
  Dim c As Comment
  For Each c In Comments
    if c.shape.heigth > c.parent.top then
      c.shape.top = 0
      c.shape.left = c.parent.left + c.parent.width
    else
      c.shape.top = c.parent.top - c.shape.heigth
      c.Shape.Left = c.Parent.Left
    end if
  Next
End Sub
он не работает
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 07.06.2015, 16:38   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а Вы, как и я безграмотны в английском?

а ексель знает, что высота пишется Height, а не как написано в примере раньше heigth.

замените два раза heigth на правильное слово - заработает
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.06.2015, 17:05   #8
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

нее, я просто невнимательная
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 07.06.2015 в 17:22.
Оксана33 вне форума Ответить с цитированием
Старый 07.06.2015, 17:06   #9
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

IgorGO, спасибо, то, что нужно
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 07.06.2015 в 17:22.
Оксана33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как имитировать клик мыши в определенном месте в браузере iukash Qt и кроссплатформенное программирование С/С++ 5 17.02.2011 15:28
создать файл в определенном месте DeDoK Помощь студентам 1 21.05.2010 00:00
Клик в определенном месте страницы Qami Работа с сетью в Delphi 5 11.04.2010 15:08
Макрос для кнопки появление и удаление надписи в определенном месте с условием Apostolx Microsoft Office Excel 5 05.11.2009 15:02
Как сделать чтобы файл автоматически создался в определенном месте? DM_bite Помощь студентам 6 04.08.2008 19:11